Статистики обрабатывают строки в SQL Server 2005
-
29-09-2019 - |
Вопрос
В 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, чтобы узнать количество записей, затронутых последним оператором.