Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
План запроса в АСА9
|
|||
|---|---|---|---|
|
#18+
ASA 9.0.2.3320 Есть таблица, содержит несколько полей. Одно из полей - типа date. По этому полю построен индех. В таблице содержится чуть больше миллиона строк. Записей за каждый день от 3 до 6 тыс и эты цифра стабильна. Есть простой запрос select count(*) from gs_sessions2 where data_date='2006-08-06'; Сервер запущен с минимальным объемом памяти 8мб, что-бы исключить влияние кеша. Запрос выполняется первым после запуска сервера. Запрос выполняется сканированием таблицы. Статистика по таблице обновлена. Выдержки из плана для объекта таблица: Код: plaintext 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. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. Т.к меня сканирование не устаривает, ставлю хинт на использование индекса select count(*) from gs_sessions2 with (index (ix_date) ) where data_date='2006-08-06'; План такой: Код: plaintext 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. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. Т.е насколько я понимаю, что в случае работы с индексом сервер произвел 1893 операций чтения с диска, а при сканировании 18168. Заметил, что если в запросе будет просто select *, то по умолчанию сервер выбирает индекс. В общем - сложное это дело оптимизатор АСА, логику его работы предугадать сложновато, и это вынуждает юзать хинты. Может я чего не понимаю? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2006, 21:00 |
|
||
|
План запроса в АСА9
|
|||
|---|---|---|---|
|
#18+
А если побаловаться с размером кеша что будет? Я на asa10 баловался с изменением размера кеша и заметил, что индекс используется в если кеш большой.Те при маленьком кеше fullscan кеш больше таблицы - индекс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2006, 21:31 |
|
||
|
План запроса в АСА9
|
|||
|---|---|---|---|
|
#18+
Здесь вмешивается железо. Чтение с диска последовательных секторов когда надо сделать полный скан таблицы происходит быстрее чем поиск очередного нужного сектора на диске и подчитывание его. Обрати внимание на параметры RunTime и CPUTime - первый показывает общее время работы запроса, а второй время работы процессора над запросом. В случае полного скана RunTime чуть-чуть меньше чем в случае поиска с индексом (поэтому оптимизатор и выбирает полный скан). Но нагрузка на процессор в первом случае на порядки больше. А разница RunTime-CPUTime дает тебе DiskReadTime. Резюме: убей существующий индекс ix_date и создай его заново, но уже кластерного типа. Потом сделай REORGANIZE TABLE gs_sessions2 INDEX ix_date. Теоретически это должно ускорить выборки с индексом. С этим конкретным индексом, конечно, и замедлить работу с другими индексами. --- http://www.rusug.ru] Портал русскоязычной группы пользователей Sybase ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2006, 01:20 |
|
||
|
План запроса в АСА9
|
|||
|---|---|---|---|
|
#18+
Увеличил кеш, и система стала цеплять индекс. Таки наличие некого минимального объема кеша очень важно для сервера при выборе стратегии доступа. Итого кеш 8,32Мь - сканирование, 128мб - индекс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2006, 10:55 |
|
||
|
План запроса в АСА9
|
|||
|---|---|---|---|
|
#18+
Ggg_oldУвеличил кеш, и система стала цеплять индекс. Таки наличие некого минимального объема кеша очень важно для сервера при выборе стратегии доступа. Итого кеш 8,32Мь - сканирование, 128мб - индекс.Дык! При наличии достаточного кеша влияние хард-драйва сводится к минимуму :) Если посмотришь на план запроса сейчас, с большим кешем, то увидишь что при том же значении CPUTime=0.005095 (ну плюс-минус конечно) резко уменьшается DiskReadTime. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2006, 17:39 |
|
||
|
|

start [/forum/topic.php?fid=55&msg=34229163&tid=2012329]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
44ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 256ms |
| total: | 376ms |

| 0 / 0 |
