Я использую MS Sql Server 2000, и для многих запросов при выполнении запроса в Query Analyzer при включенной статистике цифры, указанные на вкладке статистики, сильно отличаются от значения, указанные в Query Profiler. Когда профайлер и анализатор работают одновременно, некоторые запросы сообщают о 200 чтениях в Analyzer, в то время как Profiler сообщает, что запрос предирует 14000. Основываясь на производительности запросов, мне кажется, что Profiler прав. Однако почему существует такое большое расхождение между этими двумя? Есть ли у кого-нибудь еще опыт с тем же самым делом?Query Analyzer VS. Чтение, запись и длительность запросов Profiler
ответ
Эти две утилиты делают разные вещи:
SQL Profiler наблюдает за то, что происходит, и отчеты о ней.
Анализатор запросов рассматривает код SQL и вычисляет, как его запускать.
Query Analyzer использует статистику, чтобы выяснить, что она собирается делать, но результаты являются планом действий, даже если статистика показана.
SQL Profiler сообщает впоследствии о том, что произошло - это более точно, но имеет обратную силу.
Попробуйте обновить свою статистику, если обнаружите, что Query Analyzer становится очень неточным.
«Анализатор запросов использует статистику, чтобы выяснить, что он собирается делать, но результаты - это план действий, даже если статистика отображается.» А? Если вы запускаете запрос со статистикой, запрос выполняется и результаты верны. – 2008-10-09 15:18:48
Логические или физические чтения? – 2008-10-09 10:29:54