Example #1
0
        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);
        }