Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как ускорить выполнение запроса
|
|||
|---|---|---|---|
|
#18+
Имеется таблица archive ([id] bigint, [tagid] int, [now] datetime, [value] real), [id] - primary key, [now]+[tagid],[now] исторически установленные некластеризованные индексы, содержит 234794111 записей. Запрос select * from archive where [now] between @dt1 and @dt2 отрабатывает больше 7 минут возвращает около 5 млн. строк. Есть какие-то функции ускоряющие выборку? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2019, 09:38 |
|
||
|
Как ускорить выполнение запроса
|
|||
|---|---|---|---|
|
#18+
Либо создавайте индекс покрывающий по полю по которому фильтруете. Либо если не принципиально модифицируйте свой кластерный индекс и туда на первое место ставьте стоблец по котороуми опять-же фильтруете. Либо если редакция позволяет загоняйте данные в кластерный колумнстор. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2019, 09:42 |
|
||
|
Как ускорить выполнение запроса
|
|||
|---|---|---|---|
|
#18+
Таблица не моя, изменения вносить нельзя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2019, 09:58 |
|
||
|
Как ускорить выполнение запроса
|
|||
|---|---|---|---|
|
#18+
nika1058, Типа, функции "а ну ка работать быстро, и чтобы делать ничего не надо было"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2019, 10:01 |
|
||
|
Как ускорить выполнение запроса
|
|||
|---|---|---|---|
|
#18+
nika1058, Так начните с того, что проанализируйте/приложите план выполнения запроса, что физически реально под капотом происходит - понять. Без этого всего - ниачом, гадание на кофейной гуще P.S. - использовать * в конструкции SELECT - моветон, признак дурного вкуса ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2019, 10:10 |
|
||
|
Как ускорить выполнение запроса
|
|||
|---|---|---|---|
|
#18+
nika1058Таблица не моя, изменения вносить нельзя.Даже простой индекс ? Ну нельзя так нельзя. Пусть все работает, как сейчас. Чо 7 минут жалко, что ли ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2019, 10:11 |
|
||
|
Как ускорить выполнение запроса
|
|||
|---|---|---|---|
|
#18+
nika1058Таблица не моя, изменения вносить нельзя.Тогда совет какого рода вы хотите услышать? Вообще, запросы на какие то работы с БД обычно адресуют тем, чьи таблицы/базы/сервер. "Чужим" что то делать, не имея полномочий, затруднительно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2019, 10:14 |
|
||
|
Как ускорить выполнение запроса
|
|||
|---|---|---|---|
|
#18+
Sergey SyrovatchenkoЛибо создавайте индекс покрывающий по полю по которому фильтруете. Либо если не принципиально модифицируйте свой кластерный индекс и туда на первое место ставьте стоблец по котороуми опять-же фильтруете. Либо если редакция позволяет загоняйте данные в кластерный колумнстор . А как кластерный колумнстор поможет при такой фильтрации? Без подвоха вопрос. Колумнстор, как я понимаю, всегда сканируется целиком, вне зависимости от фильтрующего предиката. Т.е. в общем случае там будет не ускорение, а некое гарантированное время выборки. Или я о чем то не в ту степь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2019, 10:33 |
|
||
|
Как ускорить выполнение запроса
|
|||
|---|---|---|---|
|
#18+
uaggsterSergey SyrovatchenkoЛибо создавайте индекс покрывающий по полю по которому фильтруете. Либо если не принципиально модифицируйте свой кластерный индекс и туда на первое место ставьте стоблец по котороуми опять-же фильтруете. Либо если редакция позволяет загоняйте данные в кластерный колумнстор . А как кластерный колумнстор поможет при такой фильтрации? Без подвоха вопрос. Колумнстор, как я понимаю, всегда сканируется целиком, вне зависимости от фильтрующего предиката. Т.е. в общем случае там будет не ускорение, а некое гарантированное время выборки. Или я о чем то не в ту степь? Колумнстор достаточно хорошо жмет данных. Особенно те, где в полях есть много повторяющихся значений. Соответственно, 1. Скан такого индекса проходить быстрее (если говорить про IO) 2. Количество данных, которые могут уместиться в кеше (буферпул) больше, а значит при чтение выше вероятность попасть на уже закешированные данные К запросу с * не относиться, но 3. При выборе только части полей из таблицы, благодаря колоночному хранения, количество вычитываемых данных тоже меньше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2019, 10:52 |
|
||
|
Как ускорить выполнение запроса
|
|||
|---|---|---|---|
|
#18+
uaggster А как кластерный колумнстор поможет при такой фильтрации? Без подвоха вопрос. Ну и плюс к тому что сказал msLex можно добавить что в рамках каждой RowGroup колумнстора есть мин/макс по значению каждого столбца. Соотвественно если даты у нас по убыванию/возрастанию хранятся, то лишние RowGroup будут отбрасываться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2019, 11:31 |
|
||
|
Как ускорить выполнение запроса
|
|||
|---|---|---|---|
|
#18+
Спасибо всем за ответы. Но, раз, с индексами мне экспериментировать не позволили и функций для ленивых не существует, буду джобом складывать в свою таблицу усредненные значения, а в чужую ходить только за данными за текущий получас. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2019, 12:00 |
|
||
|
Как ускорить выполнение запроса
|
|||
|---|---|---|---|
|
#18+
А чо если обновить статистику по таблице ? Хоть сабжевое поле без индекса, статистика по нему может быть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2019, 12:31 |
|
||
|
Как ускорить выполнение запроса
|
|||
|---|---|---|---|
|
#18+
L_argo, Пробовала, почти не влияет на скорость. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2019, 13:36 |
|
||
|
Как ускорить выполнение запроса
|
|||
|---|---|---|---|
|
#18+
nika1058L_argo, Пробовала, почти не влияет на скорость.Вообще-то ничто не мешает создать индекс по полю. Поможет - ОК. Не поможет - удалить. Как-то навредить он точно не может. И создастся за какие-то десятки секунд. На хорошем массиве за 5-7 сек. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2019, 13:49 |
|
||
|
Как ускорить выполнение запроса
|
|||
|---|---|---|---|
|
#18+
L_argonika1058L_argo, Пробовала, почти не влияет на скорость.Вообще-то ничто не мешает создать индекс по полю.Отсутствие прав еще как мешает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2019, 14:05 |
|
||
|
Как ускорить выполнение запроса
|
|||
|---|---|---|---|
|
#18+
L_argo, Понимаю, но это политический вопрос, доступ к серверу дали только с условием, что буду только считывать данные )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2019, 14:07 |
|
||
|
Как ускорить выполнение запроса
|
|||
|---|---|---|---|
|
#18+
nika1058, В плане выполнения Clustered Index Scan/Table Scan? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2019, 14:19 |
|
||
|
Как ускорить выполнение запроса
|
|||
|---|---|---|---|
|
#18+
nika1058это политический вопрос, доступ к серверу дали только с условием, что буду только считывать данные ))Как же вы собираетесь "класть данные в свою таблицу", если доступ к серверу только на чтение??? Вы лучше опишите задачу целиком, и условия её выполнения (что можно делать, и где), может, можно что то придумать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2019, 14:40 |
|
||
|
Как ускорить выполнение запроса
|
|||
|---|---|---|---|
|
#18+
invm, Clustered Index Scan ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2019, 14:45 |
|
||
|
Как ускорить выполнение запроса
|
|||
|---|---|---|---|
|
#18+
alexeyvg, Линкованные серверы. На своем все права есть. С производственного сервера выбираю диапазон данных во временную таблицу в свою базу и выполняю вычисления. Сам select происходит очень долго. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2019, 14:57 |
|
||
|
Как ускорить выполнение запроса
|
|||
|---|---|---|---|
|
#18+
nika1058, Если имеется индекс, где [now] первым столбцом, то можете попробовать так: Код: 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. Тоже может отработать быстрее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2019, 15:02 |
|
||
|
Как ускорить выполнение запроса
|
|||
|---|---|---|---|
|
#18+
nika1058, Ускоряйте сеть... другого решения нет. Или копируйте всю таблицу себе ночью.. днём работайте у себя с индексами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2019, 15:05 |
|
||
|
Как ускорить выполнение запроса
|
|||
|---|---|---|---|
|
#18+
nika1058alexeyvg, Линкованные серверы. На своем все права есть. С производственного сервера выбираю диапазон данных во временную таблицу в свою базу и выполняю вычисления. Сам select происходит очень долго.А, понятно. А если вместо переменных использовать константы, то есть написать: Код: sql 1. не будет быстрее? Ещё вариант, может, явно указать индекс? Он ведь, вообще говоря, есть, но не используется Либо сервер тупой, либо затраты на лукап будут неоправданно велики. Вот это нужно проверить. invmЕсли имеется индекс, где [now] первым столбцом, то можете попробовать так:Да, это отличная идея, хотя эффект зависит от данных, тоже нужно проверять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2019, 15:16 |
|
||
|
Как ускорить выполнение запроса
|
|||
|---|---|---|---|
|
#18+
invmЕсли имеется индекс, где [now] первым столбцом, то можете попробовать так: Код: 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. Тоже может отработать быстрее. Спасибо! В половину быстрее оба варианта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2019, 15:23 |
|
||
|
Как ускорить выполнение запроса
|
|||
|---|---|---|---|
|
#18+
vboretsУскоряйте сеть... другого решения нет. Или копируйте всю таблицу себе ночью.. днём работайте у себя с индексами. Не получится, сводка будет не актуальна. Данные в таблицу прилетают по несколько раз в секунду, да еще с 8-ми конвейеров. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2019, 15:34 |
|
||
|
|

start [/forum/topic.php?fid=46&startmsg=39829031&tid=1687636]: |
0ms |
get settings: |
6ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
45ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
74ms |
get tp. blocked users: |
2ms |
| others: | 246ms |
| total: | 416ms |

| 0 / 0 |
