|
Самые популярные таблицы в запросах
|
|||
---|---|---|---|
#18+
Здравствуйте. Имеется таблица со столбцами id и текст запроса. Необходимо отсортировать таблицы, используемые в тексте запросов. По сути всё сводит к извлечению из запроса слов после выражения "FROM" и "JOIN", но как их извлечь - в этом, наверное, вопрос. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2020, 16:06 |
|
Самые популярные таблицы в запросах
|
|||
---|---|---|---|
#18+
Ну, берете, пишете парсер запросов и считаете. Осталось понять одно: нафига? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2020, 16:23 |
|
Самые популярные таблицы в запросах
|
|||
---|---|---|---|
#18+
Earl11По сути всё сводит к извлечению из запроса слов после выражения "FROM" и "JOIN"А также in (), exists (), apply () и куча всего остального. Проще, думаю, все-таки пойти стандартным путем, а именно воспользоваться sys.dm_db_index_usage_stats на том сервере, откуда у вас эта таблица (не из ноосферы же вы ее считали). Там все уже посчитано до вас. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2020, 18:49 |
|
Самые популярные таблицы в запросах
|
|||
---|---|---|---|
#18+
Earl11 Здравствуйте. Имеется таблица со столбцами id и текст запроса. Необходимо отсортировать таблицы, используемые в тексте запросов. По сути всё сводит к извлечению из запроса слов после выражения "FROM" и "JOIN", но как их извлечь - в этом, наверное, вопрос. Если речь идет о запросах, которые выполнялись на целевой системе в течение определенного времени, то, вчерне, это будет нечто вроде такого запроса: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
(по смыслу - выгребаем все запросы из кэша планов, ищем в них объекты со ссылкой на бд-схему-таблицу, считаем в разрезе хэшей этих запросов). Хотя, это так, идея, набросок для решения. Я думаю, коллеги поправят. И, опять же, надо понимать, что речь идет о запросах, которые выполнялись на сервере с момента последнего перезапуска или DBCC FREEPROCCACHE, и не были, соответственно, вычеркнуты из кэша за период работы. Если же речь идет о том, что у вас есть набор текстов запросов, например, в каком-нибудь хранилище кода, и вы хотите проанализировать его подобным образом, то, боюсь, чистого TSQL - не достаточно. Нужно написать CLR процедуру примерно подобного содержания: Код: c# 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.
https://stackoverflow.com/questions/25879543/are-there-any-way-to-programmatically-execute-a-query-with-include-actual-execut А потом, соответственно, последовательно скормить этой процедуре тексты ваших запросов, а результат в xml - проанализировать с помощью запроса выше, заменив: Код: sql 1. 2.
на Код: sql 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2020, 16:29 |
|
Самые популярные таблицы в запросах
|
|||
---|---|---|---|
#18+
Earl11, муть какая-то, Вы предполагаете, что все запросы выполняются с одинаковой вероятностью, что ли? Или поспорили с товарищем? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2020, 12:09 |
|
Самые популярные таблицы в запросах
|
|||
---|---|---|---|
#18+
Я предполагаю, что это - рефакторинг. Пытаются определить трудозатраты на переписывание при изменении структуры хранения. Я видел такое, слава богу - издалека. 1500+ таблиц, более 300 тыс. запросов, неявные зависимости между таблицами через триггеры и т.д., динамический sql... ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2020, 07:13 |
|
Самые популярные таблицы в запросах
|
|||
---|---|---|---|
#18+
uaggster 1500+ таблиц, более 300 тыс. запросов, неявные зависимости между таблицами через триггеры и т.д., динамический sql... Тут, по-моему, уже никакой рефакторинг не поможет. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2020, 09:32 |
|
Самые популярные таблицы в запросах
|
|||
---|---|---|---|
#18+
fkthat uaggster 1500+ таблиц, более 300 тыс. запросов, неявные зависимости между таблицами через триггеры и т.д., динамический sql... Тут, по-моему, уже никакой рефакторинг не поможет. Ну, во-первых, главное - процесс... ... и финансирование этого процесса... ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2020, 17:55 |
|
|
start [/forum/topic.php?fid=46&fpage=58&tid=1686045]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
99ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
others: | 281ms |
total: | 487ms |
0 / 0 |