|
производительность запросов и tempdb
|
|||
---|---|---|---|
#18+
Доброго времени суток, столкнулся с такой проблемой производительности при использовании времянок. Запрос написан с времянкой на порядок по времени отличается чем без времянки на асе15.5 linux. создано несколько темпдб на нормальном внешнем дисковом массиве. Для этих темпдб созданы именованые кеши. Тестил и на файловой системе(dsync off и direct off), и на raw девайсах. Результаты почти теже. Без времянок намного быстрее выполняется запрос. Неужели большие накладные расходы на создание темповой таблицы? Еще интересно в высоконагруженных проектах используются временные таблицы которые создаются хранимыми процедурами которые очень часто вызываются? Может посоветуете что можно подкрутить или как проанализировать? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2013, 22:31 |
|
производительность запросов и tempdb
|
|||
---|---|---|---|
#18+
Что значит "с времянкой"? Их по разному можно использовать. Самое эффективное это что-то в духе: Код: sql 1. 2. 3. 4. 5. 6.
В этом случае у тебя будет возможность контролировать размер времянки и при нужде создавать индексы на нее. А если что-то в духе: Код: sql 1. 2. 3.
то будет тяжко. Полный скан по времянке и хорошо если разовый. Ткни Shift+F5 в dbisql и посмотри что у тебя в реальности происходит. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2013, 00:06 |
|
производительность запросов и tempdb
|
|||
---|---|---|---|
#18+
White Owl спасибо за ответ, замеряю время создания вот таких темповых таблиц: Код: sql 1. 2. 3.
Получаю результат: Код: 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. 25. 26. 27.
Повторный запуск: Код: sql 1.
Код: sql 1.
Каждый запуск выполняется с разным временем, а запрос тотже, это нормально или должно быть всегда одинаковое время? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2013, 09:16 |
|
производительность запросов и tempdb
|
|||
---|---|---|---|
#18+
А если этот запрос запустить одновоременно например 50запросов создания темповых таблиц, возрастает время 299mc, при этом ни ядра не высаживаются ни дисковая. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2013, 09:32 |
|
производительность запросов и tempdb
|
|||
---|---|---|---|
#18+
energizer1, вангую блокировки на tempdb..sysobjects/sysindexes и прочее. в отчете процедурки будет видно Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2013, 16:40 |
|
производительность запросов и tempdb
|
|||
---|---|---|---|
#18+
energizer1White Owl спасибо за ответ, замеряю время создания вот таких темповых таблиц: Код: sql 1. 2. 3.
Это конечно тоже можно измерять, но это бессмысленно. Все равно что измерять расход бензина на основе "выехал из гаража, заехал обратно". energizer1Каждый запуск выполняется с разным временем, а запрос тотже, это нормально или должно быть всегда одинаковое время?Да, разное время обработки это нормально. Кроме твоих экспериментов сервер делает еще что-то, машина на которой сервер стоит чем то параллельно занимается (хотя бы тем, что получает запросы из сети и отвечает на них)... В общем разница между запросами в несколько микросекунд это вполне нормально и ожидаемо. Вот если бы ты на таком кратком скрипте увидел время выполнения в несколько секунд - тогда это будет повод бить тревогу. А 0-16 микросекунд это вполне нормально. Лучше возьми реальную хранимую процедуру и прогони ее через анализатор (Shift+F5). Намного полезнее будет. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2013, 18:05 |
|
производительность запросов и tempdb
|
|||
---|---|---|---|
#18+
blzz, за 1 минуту вейтов было 200мс White Owl, попробую через анализатор прогнать. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.07.2013, 14:39 |
|
производительность запросов и tempdb
|
|||
---|---|---|---|
#18+
White OwlЧто значит "с времянкой"? Их по разному можно использовать. Самое эффективное это что-то в духе: Код: sql 1. 2. 3. 4. 5. 6.
После версии 12.7 я бы не стал это утверждать со 100% уверенностью. Это уже скорее привычки опытных разработчиков. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2013, 10:32 |
|
производительность запросов и tempdb
|
|||
---|---|---|---|
#18+
White Owl авторВ общем разница между запросами в несколько микросекунд это вполне нормально и ожидаемо. Вот если бы ты на таком кратком скрипте увидел время выполнения в несколько секунд - тогда это будет повод бить тревогу. А 0-16 микросекунд это вполне нормально. Хотелось бы уточнить я значения приводил в миллисекундах, а вы приводите в микросекундах. Хотелось бы уточнить, так как у меня получается при 20 потоках создания времянки: первая секунда = 400милисекунд после первой секунды 12-20милисекунд ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2013, 13:35 |
|
производительность запросов и tempdb
|
|||
---|---|---|---|
#18+
energizer1Хотелось бы уточнить я значения приводил в миллисекундах, а вы приводите в микросекундах.Я привожу?! ... Ой, действительно я привожу. Милли- конечно же, а не микро-. Прошу прощения. Но все остальное что я писал без изменений. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2013, 18:01 |
|
|
start [/forum/topic.php?fid=55&msg=38346621&tid=2009952]: |
0ms |
get settings: |
12ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
172ms |
get topic data: |
13ms |
get forum data: |
2ms |
get page messages: |
70ms |
get tp. blocked users: |
2ms |
others: | 15ms |
total: | 307ms |
0 / 0 |