Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
21.09.2011, 18:36
|
|||
---|---|---|---|
|
|||
Почему настолько отличается скорось выполнения запроса ? |
|||
#18+
Добрый день всем! Есть вот такой запрос: Код: plaintext 1. 2.
Выполняется быстро, конструкции подсмотрел через профайлер в 1с но если вот это '20110101 0 0' перенести в переменную - тогда время увеличивается в десятки раз. например: Код: plaintext 1. 2. 3. 4. 5. 6. 7.
Почему так? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
21.09.2011, 18:38
|
|||
---|---|---|---|
|
|||
Почему настолько отличается скорось выполнения запроса ? |
|||
#18+
Потому что запросы разные. И, скорее всего, с разным планом. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
21.09.2011, 18:45
|
|||
---|---|---|---|
|
|||
Почему настолько отличается скорось выполнения запроса ? |
|||
#18+
А чем они разные ? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
21.09.2011, 18:47
|
|||
---|---|---|---|
Почему настолько отличается скорось выполнения запроса ? |
|||
#18+
iboobelА чем они разные ? Тем, что в одном случае сервер знает накладываемые ограничения, а в другом - нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
21.09.2011, 18:49
|
|||
---|---|---|---|
Почему настолько отличается скорось выполнения запроса ? |
|||
#18+
iboobel, уточню: знает накладываемые ограничения во время компиляции . ... |
|||
:
Нравится:
Не нравится:
|
|||
|
21.09.2011, 18:49
|
|||
---|---|---|---|
|
|||
Почему настолько отличается скорось выполнения запроса ? |
|||
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
|
21.09.2011, 18:49
|
|||
---|---|---|---|
|
|||
Почему настолько отличается скорось выполнения запроса ? |
|||
#18+
iljyiboobelА чем они разные ? Тем, что в одном случае сервер знает накладываемые ограничения, а в другом - нет. И ему приходится перебирать всю таблицу и сравнивать с переменной ? правильно я понял ? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
21.09.2011, 18:52
|
|||
---|---|---|---|
Почему настолько отличается скорось выполнения запроса ? |
|||
#18+
iboobeliljyпропущено... Тем, что в одном случае сервер знает накладываемые ограничения, а в другом - нет. И ему приходится перебирать всю таблицу и сравнивать с переменной ? правильно я понял ? Неправильно. В случае констант сервер может более точно оценить количество выбираемых записей и соответственно оптимизировать выполнение. Посмотрите в план уже наконец. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
21.09.2011, 19:08
|
|||
---|---|---|---|
|
|||
Почему настолько отличается скорось выполнения запроса ? |
|||
#18+
Посмотрел, видно что в первом случае перебрал 18 000 строк, в другом 1 500 000 ... |
|||
:
Нравится:
Не нравится:
|
|||
|
21.09.2011, 19:17
|
|||
---|---|---|---|
Почему настолько отличается скорось выполнения запроса ? |
|||
#18+
iboobelПосмотрел, видно что в первом случае перебрал 18 000 строк, в другом 1 500 000 И все? При тех же значениях параметров? Быть такого не может, должны еще операции отличаться. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
21.09.2011, 19:19
|
|||
---|---|---|---|
|
|||
Почему настолько отличается скорось выполнения запроса ? |
|||
#18+
может у вас после манипуляций с датами совсем другие значения получаются? вы проверяли? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
21.09.2011, 19:27
|
|||
---|---|---|---|
|
|||
Почему настолько отличается скорось выполнения запроса ? |
|||
#18+
iboobel, Данные достаете видимо из таблиц _1SENTRY, _1SJOURN или из регистров... А зачем так длинно: set @date_start = "манипуляции с датой"+' 0 0' вполне достаточно: DATE_TIME_IDDOC>='20110921' and DATE_TIME_IDDOC<'20110922' И еще, иногда бывает очень полезно добавить в индексы, где индексируется DATE_TIME_IDDOC, включенные столбцы с необходимыми для выборки данными. 1С 7.7 такие манипуляции с индексами терпит. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
21.09.2011, 19:36
|
|||
---|---|---|---|
|
|||
Почему настолько отличается скорось выполнения запроса ? |
|||
#18+
Сори, таки отличаются. В первом случае (время более минуты) clustered index scan (cost 93 %) >>> Parallelism (cost 7%) >>> Select (cost 0%) В другом (время 1 секунда) index seek (cost 0%) >>> bookmark lookup 100% >>> select 0% ... |
|||
:
Нравится:
Не нравится:
|
|||
|
21.09.2011, 19:41
|
|||
---|---|---|---|
|
|||
Почему настолько отличается скорось выполнения запроса ? |
|||
#18+
VladimirKr, да из регистров ) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
21.09.2011, 19:49
|
|||
---|---|---|---|
|
|||
Почему настолько отличается скорось выполнения запроса ? |
|||
#18+
iboobel, Дык попробуйте убрать bookmark lookup включенными столбцами, если столбцов немного. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
21.09.2011, 20:01
|
|||
---|---|---|---|
Почему настолько отличается скорось выполнения запроса ? |
|||
#18+
iboobelСори, таки отличаются. В первом случае (время более минуты) clustered index scan (cost 93 %) >>> Parallelism (cost 7%) >>> Select (cost 0%) В другом (время 1 секунда) index seek (cost 0%) >>> bookmark lookup 100% >>> select 0% Проще всего задать принудительно использование индекса with index... ... |
|||
:
Нравится:
Не нравится:
|
|||
|
21.09.2011, 21:02
|
|||
---|---|---|---|
Почему настолько отличается скорось выполнения запроса ? |
|||
#18+
VladimirKriboobel, Дык попробуйте убрать bookmark lookup включенными столбцами, если столбцов немного. запрос с букмарком вроде автора вполне устраивает ... |
|||
:
Нравится:
Не нравится:
|
|||
|
22.09.2011, 11:39
|
|||
---|---|---|---|
|
|||
Почему настолько отличается скорось выполнения запроса ? |
|||
#18+
step_ksVladimirKriboobel, Дык попробуйте убрать bookmark lookup включенными столбцами, если столбцов немного. запрос с букмарком вроде автора вполне устраивает Да, вполне устраивает. Я не совсем понял они по разному выполняются, сделал через exec (@sql) и временную таблицу. Код: plaintext 1. 2. 3. 4. 5. 6. 7.
Может не очень феншуйно, но работает ... |
|||
:
Нравится:
Не нравится:
|
|||
|
22.09.2011, 11:45
|
|||
---|---|---|---|
Почему настолько отличается скорось выполнения запроса ? |
|||
#18+
iboobelstep_ksпропущено... запрос с букмарком вроде автора вполне устраивает Да, вполне устраивает. Я не совсем понял они по разному выполняются, сделал через exec (@sql) и временную таблицу. Код: plaintext 1. 2. 3. 4. 5. 6. 7.
Может не очень феншуйно, но работает Сказки рассказываете! ... |
|||
:
Нравится:
Не нравится:
|
|||
|
22.09.2011, 11:45
|
|||
---|---|---|---|
Почему настолько отличается скорось выполнения запроса ? |
|||
#18+
iboobelЯ не совсем понял они по разному выполняются, сделал через exec (@sql) и временную таблицу. Код: plaintext 1. 2. 3. 4. 5. 6. 7.
Может не очень феншуйно, но работает временная таблица то зачем? сразу без into пишите тогда уж. Или у вас там не так все просто как вы показываете? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
22.09.2011, 11:46
|
|||
---|---|---|---|
Почему настолько отличается скорось выполнения запроса ? |
|||
#18+
и как это вы так ловко поймали снаружи созданную в exec-е таблицу с одной решеткой? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
22.09.2011, 11:47
|
|||
---|---|---|---|
Почему настолько отличается скорось выполнения запроса ? |
|||
#18+
так попробуйте Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
22.09.2011, 11:48
|
|||
---|---|---|---|
Почему настолько отличается скорось выполнения запроса ? |
|||
#18+
step_ks, таблица создаётся где-то раньше, а не в экзеке ... |
|||
:
Нравится:
Не нравится:
|
|||
|
22.09.2011, 11:50
|
|||
---|---|---|---|
Почему настолько отличается скорось выполнения запроса ? |
|||
#18+
Shakillstep_ks, таблица создаётся где-то раньше, а не в экзеке а зачем тогда показывать , что создается в экзеке? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=46&mobile=1&tid=1707992]: |
0ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
28ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
69ms |
get tp. blocked users: |
2ms |
others: | 11ms |
total: | 148ms |
0 / 0 |