Вопрос

В Oracle есть представление под названием V $ sqlarea, в котором перечислены статистика по общей области SQL и содержит одну строку на строку SQL. Он предоставляет статистику по операторам SQL, которые находятся в памяти, проанализированы и готовы к выполнению.

Существует один столбец -rows_prococed, который суммирует общее количество строк, обрабатываемых от имени этого оператора SQL.

Я ищу информацию о обеспечении в SQLServer 2005.

Я посмотрел в некоторых из DMV (например, sys.dm_exec_query_stats), но я ничего не нашел.

@@ rowcount не будет полезен для меня, так как я хочу информацию о постепенной статистике, которая будет суммировать rows_prococaved в верхних запросах потребления ЦП/IO/выполнения в базе данных.

Я был бы признателен за любую помощь в отношении предмета.

Заранее спасибо,

Рони.


Я видел это, когда я запрошу следующий запрос, я получаю план запроса в XML.

Внутри кода плана XML есть часть «оценки» с числом, которая коррелирует с количеством рядов оценки запроса.

Я думаю о том, чтобы подготовить столбец Query_plan, чтобы завоевать только приведенную выше информацию (если только я не найду его в некоторых представлениях/таблицах системы).

Где я могу найти фактическое количество рядов запроса? Где он хранится?

SELECT 
       case when sql_handle IS NULL
           then ' '
           else ( substring(st.text,(statement_start_offset+2)/2,       
   (case when qs.statement_end_offset = -1         
   then len(convert(nvarchar(MAX),st.text))*2      
   else statement_end_offset    
   end - statement_start_offset) /2  ) )
        end as query_text , 
    query_plan,
 FROM sys.dm_exec_query_stats qs 
CROSS APPLY sys.dm_exec_query_plan(qs.plan_handle)
cross apply sys.dm_exec_sql_text(sql_handle) st;
Это было полезно?

Решение

Насколько я знаю, нет прямого эквивалента, особенно для RowCounts. Соответствующая стоимость DMVS -трека, которая используется для демонстрации пропущенных индексированных, самых дорогих запросов и т. Д.

Это даст вам статистику на SQL -заявление для текущих сессий. YMMV: Я только что собрал его на основе сценариев, которые я лежу.

SELECT 
    *
FROM 
    sys.dm_exec_query_stats  QS
    CROSS APPLY 
    sys.dm_exec_sql_text(sql_handle) ST

Мои сценарии основаны на ссылках, которые я упомянуто здесь

Другие советы

Вы можете использовать системную переменную @@ rowcount, чтобы узнать количество записей, затронутых последним оператором.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top