SQL Server: отчет о лучших запросах по общему времени процессора

#sql-server #cpu-usage

#sql-сервер #загрузка процессора

Вопрос:

Отчет SQL Server — ЛУЧШИЕ запросы по общему времени процессора возвращает тот же запрос для 10 запросов с высоким потреблением ЦП.

  SELECT SUM(db.buffer_pool_size) AS instance_buffer_pool_size 
 FROM (SELECT COUNT_BIG(*) * (8*1024) AS buffer_pool_size 
       FROM sys.dm_os_buffer_descriptors WITH (nolock) 
       WHERE database_id <> 32767   -- ResourceDB 
       GROUP BY database_id) db
  

Этот запрос выполняется во всех базах данных, присутствующих на SQL Server.

Мы выполнили поиск по всем представлениям, функциям, процедурам, шагам задания SQL и не нашли ничего, откуда выполняется этот запрос.

Есть предложения о том, как проверить, откуда он выполняется?

Комментарии:

1. Используйте профилировщик или расширенные сеансы событий, чтобы конкретно зафиксировать выполнение этого запроса, и включите в событие любую необходимую информацию (исходный IP, сеанс, имя учетной записи и т.д.), Чтобы сузить круг источников.

2. Я бы тоже выбрал Profiler, но вам нужно дождаться запуска запроса. Возможно, вы можете выполнить поиск по части запроса (например, по именам таблиц или столбцам) в объектах вашей базы данных и сузить область поиска. Это может помочь: ВЫБЕРИТЕ * ИЗ sys.objects, ГДЕ OBJECT_DEFINITION (object_id) ИМЕЕТ вид ‘%%’. Также вы можете использовать сохраненные sp_depends процедуры для поиска таких зависимостей.

3. Я проверил и обнаружил, что запрос выполняется с самого сервера. Единственной новой вещью, которую мы сделали на сервере, была установка нового relic agent, и после отключения запроса выполнение прекратилось. Спасибо за вашу помощь, ребята!!! ПРИВЕТСТВИЯ