|
SET STATISTICS TIME ON
|
|||
---|---|---|---|
#18+
Подскажите, что такое в сообщениях Время работы SQL Server: Время ЦП = 827 мс, затраченное время = 10701 мс. "затраченное время" ? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2013, 16:58 |
|
SET STATISTICS TIME ON
|
|||
---|---|---|---|
#18+
defragmentator, затраченное - суммарное время на выполнение запроса ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2013, 17:06 |
|
SET STATISTICS TIME ON
|
|||
---|---|---|---|
#18+
Shakilldefragmentator, затраченное - суммарное время на выполнение запроса Что такое "суммарное время на выполнение запроса" ? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2013, 17:13 |
|
SET STATISTICS TIME ON
|
|||
---|---|---|---|
#18+
defragmentator"затраченное время" ? Время выполнения запроса. То, что можно увидеть в строке состояния SSMS после выполнения запроса, только в миллисекундах. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2013, 17:16 |
|
SET STATISTICS TIME ON
|
|||
---|---|---|---|
#18+
defragmentatorShakilldefragmentator, затраченное - суммарное время на выполнение запроса Что такое "суммарное время на выполнение запроса" ?время, прошедшее от момента начала выполнения запроса до момента завершения. очевидно же ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2013, 17:16 |
|
SET STATISTICS TIME ON
|
|||
---|---|---|---|
#18+
Причём "Время ЦП" может быть как меньше "затраченного времени", так и больше. Больше иногда бывает в случае распараллеленных запросов, т.к. "Время ЦП" — это суммарное время по всем процессорам, задействованным в выполнении запроса. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2013, 17:19 |
|
SET STATISTICS TIME ON
|
|||
---|---|---|---|
#18+
Гость333, то есть в случае одного процесора суммарное время = время ЦП + время пересылки данных к серверу и обратно? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2013, 17:22 |
|
SET STATISTICS TIME ON
|
|||
---|---|---|---|
#18+
defragmentator, и плюс время на операции ввода-вывода. чтение и запись на диск могут отнять много времени ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2013, 17:26 |
|
SET STATISTICS TIME ON
|
|||
---|---|---|---|
#18+
Ещё — плюс время, в течение которого запрос висел в ожидании блокировок. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2013, 17:32 |
|
SET STATISTICS TIME ON
|
|||
---|---|---|---|
#18+
На время ЦП можно ориентироваться как на время выполнения запроса для сравнения эффективности двух вариантов запроса или лучше сравнивать в плане запроса в %? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2013, 17:37 |
|
SET STATISTICS TIME ON
|
|||
---|---|---|---|
#18+
defragmentator, на затраченное ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2013, 17:39 |
|
SET STATISTICS TIME ON
|
|||
---|---|---|---|
#18+
defragmentatorНа время ЦП можно ориентироваться как на время выполнения запроса для сравнения эффективности двух вариантов запроса или лучше сравнивать в плане запроса в %? Нет. Ориентироваться надо на связку план + STATISTICS TIME + STATISTICS IO. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2013, 17:40 |
|
SET STATISTICS TIME ON
|
|||
---|---|---|---|
#18+
zxc1257defragmentator, на затраченное Не уверен. Это время обмена клиента с сервером, в основном. А если запрос идёт в пакете, то такого обмена нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2013, 17:41 |
|
SET STATISTICS TIME ON
|
|||
---|---|---|---|
#18+
pkarklindefragmentatorНа время ЦП можно ориентироваться как на время выполнения запроса для сравнения эффективности двух вариантов запроса или лучше сравнивать в плане запроса в %? Нет. Ориентироваться надо на связку план + STATISTICS TIME + STATISTICS IO. Если план чуть быстрее, а STATISTICS TIME (время ЦП) чуть медленнее, то что выбрать? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2013, 17:42 |
|
SET STATISTICS TIME ON
|
|||
---|---|---|---|
#18+
defragmentatorНа время ЦП можно ориентироваться как на время выполнения запроса для сравнения эффективности двух вариантов запроса или лучше сравнивать в плане запроса в %? а какой критерий вы выбрали в качестве оценки эффективности? максимум скорости или минимум ресурсов или какие-то смешанные варианты? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2013, 17:44 |
|
SET STATISTICS TIME ON
|
|||
---|---|---|---|
#18+
defragmentatorzxc1257defragmentator, на затраченное Не уверен. Это время обмена клиента с сервером, в основном . А если запрос идёт в пакете, то такого обмена нет. правильно, i/o, wait, ... можно пренебречь. копейки. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2013, 17:45 |
|
SET STATISTICS TIME ON
|
|||
---|---|---|---|
#18+
defragmentatorЕсли план чуть быстрее, а STATISTICS TIME (время ЦП) чуть медленнее, то что выбрать? Приведите, уже, реальные планы и озвученные выше набор статистик. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2013, 17:45 |
|
SET STATISTICS TIME ON
|
|||
---|---|---|---|
#18+
pkarklin, да ладно, я для себя уже выбрал лучший вариант, просто хочу на будущее знать. Если что, приведу вариант, а пока вопрос можно считать решённым. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2013, 17:51 |
|
SET STATISTICS TIME ON
|
|||
---|---|---|---|
#18+
defragmentatorплан чуть быстрее Что вы здесь имеете в виду? У плана меньше стоимость (Estimated Cost)? Эта стоимость измеряется в "условных попугаях". Подробнее можно прочесть, например, с этого сообщения 14136542 и до конца темы. То есть это стоимость запроса на некоей условной "эталонной конфигурации", а реальные конфигурации могут сильно отличаться от этого эталона. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2013, 17:57 |
|
SET STATISTICS TIME ON
|
|||
---|---|---|---|
#18+
+забыл дописать Поэтому лучше ориентироваться на реальную статистику (TIME + IO) выполнения запросов. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2013, 17:58 |
|
SET STATISTICS TIME ON
|
|||
---|---|---|---|
#18+
Гость333, смотрю Actual Plan ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2013, 18:00 |
|
SET STATISTICS TIME ON
|
|||
---|---|---|---|
#18+
Гость333Поэтому лучше ориентироваться на реальную статистику (TIME + IO) выполнения запросов. А, извиняюсь, просмотрел этот пост: pkarklinОриентироваться надо на связку план + STATISTICS TIME + STATISTICS IO. Да, конечно, и план тоже надо учитывать. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2013, 18:02 |
|
SET STATISTICS TIME ON
|
|||
---|---|---|---|
#18+
defragmentatorсмотрю Actual Plan А по каким показателям из Actual Plan вы определяете, что "план чуть быстрее"? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2013, 18:05 |
|
SET STATISTICS TIME ON
|
|||
---|---|---|---|
#18+
Интересно, что сам по себе мониторинг статистики тоже может влиять на время. Год назад читал статью How to Make Scalar UDFs Run Faster (SQL Spackle) Там был результат измерения времени выполнения запроса со скалярной функций при помощи двух методов: 1) set statistics time 2) datediff Результаты в статье такие: statistics timeSQL Server Execution Times: CPU time = 109031 ms, elapsed time = 299436 ms. datediff7456 И я тогда отписался там в комментах: SomewhereSomehowJeff Moden, Wonderful note about set statistics time! Never heard of it! Т.е. скорее всего у меня получилось воспроизвести такой результат (хотя может я поверил "наслово" - но я такое редко от себя могу ожидать=)). Сейчас пытаюсь проиграть конкретно те примеры из статьи - не получается такой драматической разницы во времени выполнения. Пробовал на голом 2008r2 rtm, 2008r2 sp2, 2012 sp1. Однако, небольшая, но разница все же есть: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
автор SQL Server Execution Times: CPU time = 1934 ms, elapsed time = 2436 ms. ------------------------------------- Elapsed time:1940 Т.е. само по себе измерение статистики - тоже может влиять на время =) - Никому нельзя доверять! Даже себе самому! - возмущался мужик, намыливая штаны. - Я ведь только пукнуть хотел... У кого получится воспроизвести тайминги из статьи - просьба поделиться секретом. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2013, 20:03 |
|
SET STATISTICS TIME ON
|
|||
---|---|---|---|
#18+
с увеличением числа строк растет разрыв. на 10 000 000 разрыв около 10 сек. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2013, 20:38 |
|
SET STATISTICS TIME ON
|
|||
---|---|---|---|
#18+
zxc1257, Я тоже так подумал сначала и прежде чем постить вопрос - протестил для 10 млн и 100 млн, у меня получились те же тайминги только в пропорции. В статье же, уже при 1 млн - какие-то дикие расхождения. В статье есть даже отдельный раздел: "If you measure it, you change it." Вот мне и интересно. Впрочем ваш коммент хорошо иллюстрирует мой посыл на тему что само измерение статистики влияет на время, и, получается, чем больше объем - тем сильнее. Хотя зависимость линейная - ожидаемо. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2013, 20:47 |
|
SET STATISTICS TIME ON
|
|||
---|---|---|---|
#18+
Принцип неопределенности как из квантовой механики:) Некоторые параметры измерения статистики сильно зависят от различных показателей. В данном случае думаю была важна латентность сети.(время отклика, не путать с пропускной способностью) Думаю сейчас вам таких показателей не удается добиться именно по этим причинам:) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2013, 20:55 |
|
SET STATISTICS TIME ON
|
|||
---|---|---|---|
#18+
Хотя нет. Прочитал пост не верно - это не тот случай.(вызов то каждый для каждой строчки рекордсета но не по сети каждый раз). ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2013, 20:59 |
|
SET STATISTICS TIME ON
|
|||
---|---|---|---|
#18+
МуМу, Насчет сети надобно проверить все равно, идея хорошая! Просто так отключение протокола shared memory ничего не дает, но мало ли там как реализовано...вдруг переключение контекста скалярной функции как-то взаимодействует... Я уже как в анекдоте - никому не верю. Завтра на работе проверю, еще и между доменами и разными сегментами сети потестирую, сейчас чертов удаленный рабочий стол завис. Но в любом случае - печально то, что сам сбор статистики по времени - влияет на время (даже если и незначительно). Это хотя бы должно быть документировано - в документации я этого не нашел. Может плохо искал. SET STATISTICS TIME авторОтображает время в миллисекундах, необходимое для синтаксического анализа, компиляции и выполнения каждой инструкции. Также, где сказано, что учитывается время передачи клиенту? А оно учитывается! Может это где-то сказано в других разделах? Но почему не в этом, релевантном? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2013, 21:18 |
|
SET STATISTICS TIME ON
|
|||
---|---|---|---|
#18+
http://www.softpoint.ru/article_id4226.htm Здесь сжатая статья исследований.(где то в ссылках программулина которая позволяет измерить реальные потери при увеличении количества вызовов) Все начиналось изначально проработкой своего интерфейса на базе инфинибанд. Затем возникли вопросы по вопросы времени отклика сетевых интерфейсов. Например 10ГБ(езернет) дает в два раза меньшее время отклика чем 1 ГБ.(и большую масштабируемость) (инфини бэнд почти достигает времени взаимодействия с шаред мемори 1,5 коэффициент) Для некоторых систем это вообще очень важно. В итоге, если вызовов много , если латентность не очень - могут быть очень большие временные потери. Но в данном случае это ситуация не та, скорее всего потому что вызовы один раз обрабатываются на сервере а потом передаются сетевым интерфейсом большой кучей данных. Если это не так то - однозначно потери именно в этом.(проверить можно проанализировав сетевой трафик). Если проблемы не с сетью - то может быть завязана еще и неоптимальная виртуализация(количество контекстов переключений) и т.д. Поэтому в данном случае лучше посмотреть сколько сетевых пакетов идет туда обратно. Потом делать какие то выводы. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2013, 21:40 |
|
SET STATISTICS TIME ON
|
|||
---|---|---|---|
#18+
МуМу, сеть не причем Код: sql 1.
дело во внутренней реализации statistics time on; вы когда компилите программу в debug версии или выполняете ее под профайлером, она выполняется медленнее чем release без профайлера? так и тут. по мне так лишь бы отношение времени выполнения двух запросов под statistics time on и без него оставалось близким. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2013, 22:00 |
|
SET STATISTICS TIME ON
|
|||
---|---|---|---|
#18+
zxc1257, МуМу, Давайте все-таки просто проверим! Спорить нет смысла. Про сеть - очень хорошее предположение. Вообще, почему скалярные функции работаю так медленно? Потому, что каждый раз при выполнении скалярной функции - есть переключение контекста, как если бы выполнялся отдельный модуль. Я, например, не уверен, что в режиме включенного сбора статистики модуль скалярной функции не взаимодействует с сетью. Завтра я сам проверю, но может кто-то найдется и проверит у себя сегодня. Если не подтвердится, то нет - будем думать дальше. Какие проблемы. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2013, 22:14 |
|
SET STATISTICS TIME ON
|
|||
---|---|---|---|
#18+
Проверил, предположение хорошее, но, видимо, не верное. Разница есть, но опять же не такая драматическая. Пробовал даже с серверами расположенными в других городах, с которыми узкий канал связи - но значений, отличающиеся на порядок, получить не удалось. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2013, 10:33 |
|
|
start [/forum/topic.php?all=1&fid=46&tid=1705375]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
174ms |
get topic data: |
13ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
others: | 236ms |
total: | 518ms |
0 / 0 |