Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Оптимизация БД - путем удаления ненужных индексов и добавлением нужных
|
|||
|---|---|---|---|
|
#18+
Добрый день! Есть задача которая звучит очень просто -Нужно удалить ненужные индексы, и добавить нужные Побродив в просторах интернете выяснил что с помощью Database Engine Tuning Advisor можно на основе статистики понять чего не хватает в бд (какие индексы нужны). Там склоняется все к тому что надо профайлером записать в файл все что выполняется в бд (писать должно дней 5) и потом файл загрузить в Database Engine Tuning Advisor Записав в профайлером в файл минут 10 работы сервера , адвизор выдает что нужно создать (статистику , индексы), но ни слова что удалить, наверное не так как то смотрю или статистика не показывает. Вообщем хочу узнать насколько данный метод актуален, возможно есть более продвинутый метод. Короче поделитесь опытом, кто как ищет ненужные индексы, и те которых нехватает , буду благодарен :). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2018, 11:53 |
|
||
|
Оптимизация БД - путем удаления ненужных индексов и добавлением нужных
|
|||
|---|---|---|---|
|
#18+
kolyady, как-то так... статистика использования но по теме разгребаем только существенные индексы на больщих объектах Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2018, 11:56 |
|
||
|
Оптимизация БД - путем удаления ненужных индексов и добавлением нужных
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Только стоит осознать, что это не дает абсолютной точных сведений. Всегда может быть запрос, который использует индекс, но еще не запустился. Короче, чем длиннее период наблюдения - тем точнее сведения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2018, 11:58 |
|
||
|
Оптимизация БД - путем удаления ненужных индексов и добавлением нужных
|
|||
|---|---|---|---|
|
#18+
ну и понимать что авторThe counters are initialized to empty whenever the SQL Server (MSSQLSERVER) service is started. In addition, whenever a database is detached or is shut down (for example, because AUTO_CLOSE is set to ON), all rows associated with the database are removed. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2018, 11:58 |
|
||
|
Оптимизация БД - путем удаления ненужных индексов и добавлением нужных
|
|||
|---|---|---|---|
|
#18+
Спасибо ! Так как новичек в данном вопросе подскажите правильно ли я все понял 1) По last_USER_SEEK по минимальному значению этого поля можно понять с какого времени ведется статистика а меня min(last_USER_SEEK) и другие 3 поля показывают минимальную дату '2018-06-21 13:29:23.367', тобиш статистика у меня началась вестить с этого числа, хватит ли полторы недели для того чтобы уже делать какието выводы о нужности или ненужности индекса? 2) По колонкам ваших запросов : - USER_SEEKSтут вроде все понятно каким количеством запросов юзается данный индекс (если не так то поправте). - USER_SCANS , USER_LOOKUPS , USER_UPDATES не совсем понятно на что здесь обращать внимание ? Для наглядности запрос вернул такие данные: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2018, 12:24 |
|
||
|
Оптимизация БД - путем удаления ненужных индексов и добавлением нужных
|
|||
|---|---|---|---|
|
#18+
kolyady, авторстатистика у меня началась вестить с этого числа, хватит ли полторы недели для того чтобы уже делать какието выводы о нужности или ненужности индекса? а мы откуда знаем если все(Seek + SCAN + Lookup) ноль, то индексом никогда не пользовались, но это не значить что и не будут :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2018, 12:28 |
|
||
|
Оптимизация БД - путем удаления ненужных индексов и добавлением нужных
|
|||
|---|---|---|---|
|
#18+
kolyadyхватит ли полторы недели для того чтобы уже делать какието выводы о нужности или ненужности индекса?системы бывают разные.... в некоторых системах период активности запроса может определяться "периодами бухгалтерской отчетности": ежечасно, посуточно, неделя/декада, месяц, квартал, полугодие, год. Вы уверены, что за 1.5 недели ВСЕ виды нагрузок вашей системы успели отработать не менее одного раза? А то снесёте индекс, нужный лишь для сдачи годовой отчетности и будете удивляться в конце отчетного периода, что "как же так - раньше всегда работало быстро, а теперь ушло на сутки в себя"... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2018, 12:29 |
|
||
|
Оптимизация БД - путем удаления ненужных индексов и добавлением нужных
|
|||
|---|---|---|---|
|
#18+
Ясно тогда еще недельку подождем (как раз закрытие месяца идет) :). Все таки по колонкам можно уточнить USER_SCANS , USER_LOOKUPS , USER_UPDATES Почитал в доках описание этих полей чесно говоря до конца не понял что в них накапливается и нужно ли это учитывать Если кто в знает как простонароду обьяснить что в них и насколько это нужно учитывать, буду признателен :). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2018, 12:55 |
|
||
|
Оптимизация БД - путем удаления ненужных индексов и добавлением нужных
|
|||
|---|---|---|---|
|
#18+
Люди добрые помогите отличить одно от другого в доке пишется user_seeks BIGINT Количество запросов по пользовательским запросам. user_scans BIGINT Количество сканирований по пользовательским запросам, которые не использовали предикат «искать». user_lookups BIGINT Количество запросов по закладкам по пользовательским запросам. user_updates BIGINT Количество обновлений по пользовательским запросам. Сюда входят Insert, Delete и Updates, представляющие количество операций, которые не были затронуты. Например, если вы удаляете 1000 строк в одном выражении, это число увеличивается на 1 user_seeks - это непосредственно сами запросы пользователей (тобиш пользовательские запросы затрагивают данный индекс). user_scans и user_lookups что показывает ? в каких случаях что то туда попадает? user_updates - наверное отображает любые операции по добавлению апдейту и делейту операции. помогите понять что такое user_scans и user_lookups желательно на примере ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2018, 14:42 |
|
||
|
Оптимизация БД - путем удаления ненужных индексов и добавлением нужных
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2018, 14:46 |
|
||
|
Оптимизация БД - путем удаления ненужных индексов и добавлением нужных
|
|||
|---|---|---|---|
|
#18+
kolyady, ну в принципе Вы уже все и написали. Сканирование - это когда читается весь индекс без использования поиска. К примеру, у вас индекс (date, id), а вам нужно найти date where id=17. Lookups - это когда каких то данных не хватает в индексе и запрос после поиска лезет в кластерный индекс (или кучу), чтобы взять их. К примеру, то же индекс, но нужно найти id, city where date =2017. Вот после поиска по индексу запрос полезет (lookups) в кластерный за city. И будет у вас seek =+1 и lookup=+1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2018, 04:54 |
|
||
|
Оптимизация БД - путем удаления ненужных индексов и добавлением нужных
|
|||
|---|---|---|---|
|
#18+
В приницпе со скриптами уже разобрались, осталось только голову подключить, но раз тему подняли, то я оставлю еще парочку скриптов Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Код: 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. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. Разумеется TOP управляем на свое усмотрение ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2018, 08:14 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=39668251&tid=1689438]: |
0ms |
get settings: |
7ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
70ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
65ms |
get tp. blocked users: |
2ms |
| others: | 251ms |
| total: | 434ms |

| 0 / 0 |
