AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX Blogs
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 22.08.2013, 10:49   #1  
ziva is offline
ziva
Иван Захаров
Злыдни
Лучший по профессии AXAWARD 2013
 
65 / 106 (4) +++++
Регистрация: 25.03.2005
Цитата:
Сообщение от fed Посмотреть сообщение
От себя замечу, что хотя способ и остроумный (я более длинным путем эту информацию получаю), но эвристический.
Поделишься своим методом? Если он более надежный, думаю многим будет полезен.

Цитата:
Сообщение от fed Посмотреть сообщение
Во вторых - у меня есть ужасное подозрение что система использует имена курсоров повторно для других запросов.
Повторное использование курсоров пока не замечал.
За это сообщение автора поблагодарили: mazzy (5), fed (5), trud (3), raz (5), sukhanchik (7), Lucky13 (5), gl00mie (3), madm (1).
Старый 22.08.2013, 11:18   #2  
fed is offline
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,913 / 5736 (197) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
Цитата:
Сообщение от ziva Посмотреть сообщение
Поделишься своим методом? Если он более надежный, думаю многим будет полезен.



Повторное использование курсоров пока не замечал.
Он тоже эвристический
На самом деле я примитивно вытаскиваю текущие исполняющиеся запросы по сессиям
пдообным запросом
X++:
select r.session_id,r.status,
 SUBSTRING(st.text, (r.statement_start_offset/2)+1, 
        ((CASE r.statement_end_offset
          WHEN -1 THEN DATALENGTH(st.text)
         ELSE r.statement_end_offset
         END - r.statement_start_offset)/2) + 1) AS statement_text,
r.blocking_session_id,r.wait_type,r.wait_resource,r.wait_time,DB_NAME(r.database_id),r.cpu_time,r.logical_reads,r.reads,r.writes,r.start_time,r.sql_handle,r.plan_handle
from sys.dm_exec_requests  r
CROSS APPLY sys.dm_exec_sql_text(r.sql_handle) AS st
CROSS APPLY sys.dm_exec_query_plan(r.plan_handle)as qp
where sql_handle is not null
Если я вижу что где-то исполняется тот самый fetch xyz из списка тяжелых запросов, я запоминаю номер сессии и вытаскиваю данные из той же таблицы открытых курсоров что и у тебя по номеру сессии.
Проблема в том, что зачастую очень тяжелый запрос из sys.dm_exec_query_stats приводит к вполне невинному запросику в sys.dm_exec_cursors, который в Management Studio исполняется со свистом и с очень разумным планом исполнения.
Я вижу возможных причины для этого:
  1. Повторное использование имен курсоров (о котором я уже писал)
  2. SQL Server в каких-то случаях использует принципиально разные планы исполнения для ситуаций, когда запрос открывается через обычный select и для ситуации когда для того же запроса используется серверный курсор.

А вообще, по моему не существует гарантированного и универсального способа замеппить Fetch в исходный текст запроса и посмотреть на план исполнения того самого исходного запроса... У меня была надежда что в SQL 2012 что-то сдвинулось на эту тему, но похоже что это не так...
За это сообщение автора поблагодарили: mazzy (5), raz (5), Logger (3), ziva (2), madm (1).
Теги
cursor, long query, performance, sql server, sql server activity monitor, тяжелые запросы

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Microsoft Dynamics CRM Team Blog: Update Rollup 5 for Microsoft Dynamics CRM 2011 Blog bot Dynamics CRM: Blogs 2 27.10.2011 17:11
Event ID: 110 и Event ID: 117 Object Server 01: The database reported (session 1 (-AOS-)): [Microsoft][SQL Native Client]Communication link failure. The SQL statement was: "" Poleax DAX: Администрирование 0 18.05.2011 17:08
Ошибка бизнес-процесса Tarasov E Dynamics CRM: Разработка 9 18.02.2010 14:02
CRM DE LA CREME! Configuring Microsoft Dynamics CRM 4.0 for Internet-facing deployment Blog bot Dynamics CRM: Blogs 0 18.08.2009 11:05
jinx: Microsoft Dynamics AX 2009, Windows Server 2008 und SQL Server 2008 Blog bot DAX auf Deutsch 0 12.10.2008 20:10

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 09:14.