public void RegisterDeadLock(QueryDeadLockInfo lockInfo) { if (lockInfo.TimeStamp <= _lastDeadLockDate.Value) { return; } Guid blockedTextId = _queryTextStoringService.GetOrCreate(lockInfo.QueryA, "DeadLocks"); Guid blockerTextId = _queryTextStoringService.GetOrCreate(lockInfo.QueryB, "DeadLocks"); var deadLocksInfo = _dateRepository.CreateInfoRecord <DeadLockInfoRecord>(lockInfo.TimeStamp); deadLocksInfo.QueryAId = blockedTextId; deadLocksInfo.QueryBId = blockerTextId; _pendingDeadLocksInfo.Add(deadLocksInfo); }
public void RegisterReaderLogItem(ReaderLogRecord logRecord) { var hash = logRecord.GetSourceLogHash(); if (!_importedReaderLogs.Add(hash)) { return; } ReaderLogRecord.Messageobject msg = logRecord.MessageObject; if (msg == null) { return; } string query = msg.Sql.ExtractLogSqlText(); Guid textId = _queryTextStoringService.GetOrCreate(query, "ReaderLog"); string stackTrace = msg.StackTrace.NormalizeReaderStack(); Guid stackId = _stackStoringService.GetOrCreate(stackTrace, "ReaderLog"); var item = _dateRepository.CreateInfoRecord <ReaderLog>(logRecord.Date); item.QueryId = textId; item.StackId = stackId; item.Rows = msg.RowsAffected?.Sum() ?? 0; _pendingReaderLogs.Add(item); }