Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Долгий запрос  [new]
БаширМусаев
Member

Откуда:
Сообщений: 12
MSSQL-2008. Есть таблица в котором около 4 млн записей. В которой поле DateOper(тип datetime2(7)) проиндексировано.

Если делать такой запрос
SELECT SUM(s1) FROM table1 WHERE DateOper BETWEEN '2012-01-25' AND '2012-01-26'

выполняется меньше секунды

а если такой
DECLARE @d1 datetime2(7), @d2 datetime2(7)
SET @d1='2012-01-25'
SET @d2='2012-01-26'
SELECT SUM(s1) FROM table1 WHERE DateOper BETWEEN @d1 AND @d2 

выполняется 25-30 секунд

Я вообще в недоумении, по идеи первый запрос преобразует тип, и это он должен выполняться дольше но получается наоборот.

Делать как в первом не могу, так как этот запрос у меня в хранимой процедуре и вызывается с программы...

Проясните в чем дело и что не правильно?
13 окт 13, 18:14    [14963119]     Ответить | Цитировать Сообщить модератору
 Re: Долгий запрос  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10233
Блог
https://www.sql.ru/blogs/somewheresomehow/999
13 окт 13, 18:18    [14963125]     Ответить | Цитировать Сообщить модератору
 Re: Долгий запрос  [new]
БаширМусаев
Member

Откуда:
Сообщений: 12
Knyazev Alexey,

Что то там слишком много воды и ничего конкретного.

Просто ответьте как мне исправить положение?
13 окт 13, 18:28    [14963144]     Ответить | Цитировать Сообщить модератору
 Re: Долгий запрос  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10233
Блог
БаширМусаев
Что то там слишком много воды и ничего конкретного.

Просто ответьте как мне исправить положение?


Ну вот если бы вы ознакомились с ссылкой, которую я вам скинул, то поняли бы, что для решения вашей проблемы есть разные рекомендации и в каждом конкретном случаи проблемы могут отличаться...
ответ в плане запроса, в кэше планов запроса, в set-настройках и т.д.
13 окт 13, 18:48    [14963179]     Ответить | Цитировать Сообщить модератору
 Re: Долгий запрос  [new]
БаширМусаев
Member

Откуда:
Сообщений: 12
Knyazev Alexey
БаширМусаев
Что то там слишком много воды и ничего конкретного.

Просто ответьте как мне исправить положение?


Ну вот если бы вы ознакомились с ссылкой, которую я вам скинул, то поняли бы, что для решения вашей проблемы есть разные рекомендации и в каждом конкретном случаи проблемы могут отличаться...
ответ в плане запроса, в кэше планов запроса, в set-настройках и т.д.


Я понял что от индексов толку нету !!! Потому что там переменная
Но это какой то нонсенс !!! Использование констант для повышения скорости запроса !!! Как мне в хранимой процедуре где используется параметры работать с константами !!!

И вообще не пойму почему он в запросе переменные не считает временными константами, и не понятно как с этим бороться !!!

А план запроса тут был не нужен, и так видно !!! Я же показал пример и достаточно ясно сказал где выполняется дольше !!!

И что теперь??? отказаться от хранимых процедур? и если так то зачем они вообще нужны в MSSQL
13 окт 13, 19:05    [14963220]     Ответить | Цитировать Сообщить модератору
 Re: Долгий запрос  [new]
kalimba
Member

Откуда:
Сообщений: 297
БаширМусаев,

Планы обоих запросов выложите
13 окт 13, 19:20    [14963262]     Ответить | Цитировать Сообщить модератору
 Re: Долгий запрос  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10233
Блог
БаширМусаев
И вообще не пойму почему он в запросе переменные не считает временными константами, и не понятно как с этим бороться !!!

Прочитайте в конце концов статью по ссылке...
13 окт 13, 19:27    [14963272]     Ответить | Цитировать Сообщить модератору
 Re: Долгий запрос  [new]
БаширМусаев
Member

Откуда:
Сообщений: 12
kalimba,

вот планы запросов

К сообщению приложен файл. Размер - 31Kb
13 окт 13, 19:30    [14963281]     Ответить | Цитировать Сообщить модератору
 Re: Долгий запрос  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10233
Блог
БаширМусаев,

ну и?! по планам запроса вам не понятно, что из кэша поднимается план со сканом индекса... кстати по ссылке всё это подробно описано...

зы: кстати, вы и ваш запрос "выполняется меньше секунды" можете "разогнать", если избавитесь от кей лукапа, за счёт покрывающего некластерного индекса...
13 окт 13, 19:32    [14963288]     Ответить | Цитировать Сообщить модератору
 Re: Долгий запрос  [new]
БаширМусаев
Member

Откуда:
Сообщений: 12
Knyazev Alexey
БаширМусаев
И вообще не пойму почему он в запросе переменные не считает временными константами, и не понятно как с этим бороться !!!

Прочитайте в конце концов статью по ссылке...


Нет на это времени, клиенты ждать не могут пока я буду читать статью и в конце узнаю то чего и так знаю и ответов на свои вопросы не найду. Не совсем читабельная статься, есть авторы которых читаешь в раз, а есть те которые воздух сотрясают.

Пока что сделал просто через константы, от хранимых процедур отказался - далеко не всегда полезны
13 окт 13, 19:33    [14963291]     Ответить | Цитировать Сообщить модератору
 Re: Долгий запрос  [new]
БаширМусаев
Member

Откуда:
Сообщений: 12
Knyazev Alexey
БаширМусаев,

ну и?! по планам запроса вам не понятно, что из кэша поднимается план со сканом индекса... кстати по ссылке всё это подробно описано...

зы: кстати, вы и ваш запрос "выполняется меньше секунды" можете "разогнать", если избавитесь от кей лукапа, за счёт покрывающего некластерного индекса...


по конкретнее можно? пример запроса напишите !!!
13 окт 13, 19:37    [14963298]     Ответить | Цитировать Сообщить модератору
 Re: Долгий запрос  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10233
Блог
БаширМусаев
и в конце узнаю то чего и так знаю и ответов на свои вопросы не найду

простите, но по вашим вопросам, я могу сделать вывод, что ваши знания нулевые в области баз данных...

автор
Не совсем читабельная статься, есть авторы которых читаешь в раз, а есть те которые воздух сотрясают.


ну а тут вы ошибаетесь, т.к. эта статья действительно очень глубокая, уровня 300...


автор
Нет на это времени, клиенты ждать не могут пока


ну тогда тупо(!) добавте хинт recompile и будет вам счастье...

DECLARE @d1 datetime2(7), @d2 datetime2(7)
SET @d1='2012-01-25'
SET @d2='2012-01-26'
SELECT SUM(s1) FROM table1 WHERE DateOper BETWEEN @d1 AND @d2 
option (recompile)


ЗЫ: жаль ваших клиентов...
13 окт 13, 19:38    [14963299]     Ответить | Цитировать Сообщить модератору
 Re: Долгий запрос  [new]
БаширМусаев
Member

Откуда:
Сообщений: 12
Послушай умник !!!!

1. Когда я занимался IT технологиями то ты еще не родился
2. Человек который знает просто ответит и все.
3. Знания нулевые у того кто оценивает других..

Если тебе жаль моих клиентов )) хотя ты их на знаешь, то мне жаль тебя)))

Учитель хренов)))

Знаешь ответь, не знаешь молчи и не умничай.
13 окт 13, 19:49    [14963318]     Ответить | Цитировать Сообщить модератору
 Re: Долгий запрос  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10233
Блог
БаширМусаев
Послушай умник !!!!

и после этого вы действительно рассчитываете на помощь в этом форуме!?

(с) чукча не читатель...
13 окт 13, 19:51    [14963323]     Ответить | Цитировать Сообщить модератору
 Re: Долгий запрос  [new]
БаширМусаев
Member

Откуда:
Сообщений: 12
Knyazev Alexey,

1. А я ее разве получил ???.
2. Надеюсь на форуме не все такие как вы.
13 окт 13, 20:05    [14963354]     Ответить | Цитировать Сообщить модератору
 Re: Долгий запрос  [new]
kalimba
Member

Откуда:
Сообщений: 297
БаширМусаев,

Как сказали выше допишите в конец OPTION (RECOMPILE), хотя лучше OPTION (OPTIMIZE FOR UNKNOWN)
13 окт 13, 20:49    [14963464]     Ответить | Цитировать Сообщить модератору
 Re: Долгий запрос  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 35864
Блог
БаширМусаев
1. А я ее разве получил ???.


вам дали статью, полностью описывающую проблему, там же указаны и методы решения,
а если нет желания читать литературу, то есть форум "Работа", там помогут за денежку

не устраивает? "давай-до свидания", вам тут никто ничем не обязан
13 окт 13, 23:24    [14964005]     Ответить | Цитировать Сообщить модератору
 Re: Долгий запрос  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 32174
БаширМусаев
1. Когда я занимался IT технологиями то ты еще не родился
Печально, что с таким опытом вы не в состоянии прочитать и понять страничку текста, да и вообще за годы жизни можно научиться хотя бы вежливо разговаривать.
БаширМусаев
по конкретнее можно? пример запроса напишите !!!
Халявщиков нам тут не надо, тут помогают профессионалам, а не делают чужую работу. Клиент не может ждать - пусть наймёт нормального специалиста.
13 окт 13, 23:40    [14964058]     Ответить | Цитировать Сообщить модератору
 Re: Долгий запрос  [new]
StarikNavy
Member

Откуда: Москва
Сообщений: 2428
БаширМусаев
И что теперь??? отказаться от хранимых процедур?


что теперь, что теперь - сменить область деятельности.
а то эти сволочи из MS не так и не сделают так, как вам хотелось бы.
да и на форуме здесь только злые и бесчувственные негодяи, не желающие пожалеть ваших клиентов.
14 окт 13, 10:02    [14964852]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить