|
|
|
Опять производительность запросов
|
|||
|---|---|---|---|
|
#18+
Добрый день! Ситуация : - На сервере сделаны две базы detach -> file rename -> attach под новым именем. - На Baz30 сидит 1 клиент правит содержание. На Kadry сижу я, отрабатываю ХП, триггера ит.д. Учусь, короче. Базы отличаются наличием на Kadry пары триггеров, остальное, как я понимаю д.б. идентично, включая число строк в таблицах (клиент делает сплошные update). - Создана View (на обоих). ?? Почему на Kadry запрос отрабатывает 10 секунд, а на Baz30 70? ?? Почему планы выполнения запросов разные !! Проверял и в QA и set statistics profile on - Ну раз планы разные, то Profile пишет разные события. На быстром запросе в Kadry число событий ScanStarted (с разницей в startTime в микросекундах) во много раз превышает аналогичное число на медленном запросе в Baz30. - Отключал оптимизатора (set forceplan on) получил снижение производительности секунд на 10 - индексы на таблицах есть - По совету IndexWizard (Ctrl+I в QA) создал индексы. тоже снижение производительности на те же 10 сек. Что-то ещё делал, уже запутался. ??? Как анализировать ситуацию? Где почитать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2002, 11:19:02 |
|
||
|
Опять производительность запросов
|
|||
|---|---|---|---|
|
#18+
?? Почему на Kadry запрос отрабатывает 10 секунд, а на Baz30 70? ?? Почему планы выполнения запросов разные!! Возможно потому, что разные статистики. Обновите их (sp_updatestats) и попробуйте еще раз. На быстром запросе в Kadry число событий ScanStarted (с разницей в startTime в микросекундах) во много раз превышает аналогичное число на медленном запросе в Baz30. Вы ведь сами писали, что там триггер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2002, 11:35:44 |
|
||
|
Опять производительность запросов
|
|||
|---|---|---|---|
|
#18+
- Предводитель команчей - про статистику не знал. Спасибо. Но, не то: планы по-прежнему разные, даже не изменились. Время исполнения на быстром запросе прежнее 10 с, а на медленном побыстрее стало - 48 сек. - а я считал, что триггера работают только при изменении базы, а тут ведь запрос вроде "спать" должны. Я не прав выходит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2002, 12:15:50 |
|
||
|
Опять производительность запросов
|
|||
|---|---|---|---|
|
#18+
Я думал в вашем запросе как раз и используется UPDATE. Конечно, если в запросе только select то триггер не срабатывает. По поводу скорости выполнения запроса - а попробуйте перестроить индексы. Для некластерных попробуйте так : DBCC CHECKDB('база', with_repair_rebuild), заодно и проверка базы. Только переведите предварительно БД в однопользовательский режим - EXEC sp_dboption Baz30, 'single user', true. После проверки обратно в многопользовательский - EXEC sp_dboption Baz30, 'single user', false. Если есть кластерный индекс то DBCC DBREINDEX. Есть еще команда DBCC SHOWCONTIG - выдает инф. о фрагментации таблицы. Посмотрите на ее результаты до и после переиндексации. Если Extents Scanned намного меньше Extent Switches - явно нужно перестроить кластерный индекс. Если Scan Density далека от 100% то перестроить некластерные индексы. А вообще файлы данных этих БД случайно не лежат НА РАЗНЫХ физических дисках ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2002, 12:40:47 |
|
||
|
Опять производительность запросов
|
|||
|---|---|---|---|
|
#18+
-- Предводитель команчей Базы физически лежат на одной машине. Спаисбо за советы. Изучаю. PS Торможу не только по причине малограмотности, но в выходные копал картоху у тёщи, потом "праздник урожая"... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2002, 09:44:39 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32047078&tid=1820695]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
37ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 227ms |
| total: | 338ms |

| 0 / 0 |
