Совершенно глупая ситуация. Есть два database server, один старый и медленный, другой - новый и навороченный
Есть база данных, для чистоты эксперимента - одинаковая. Делаем простой запрос в query analyzer:
select * from rtsb.m where date_created > '11/1/03' and owner_id = 113
получаем ответ за 2 секунды на старом медленном сервере и за 36 секунд на новом.
В таблице есть несколько полей ntext. Если их убрать из запроса, то на обоих серверах все быстро становится.
Куда смотреть чтобы сделать новый сервер еще и быстрым ?
Да, софт немного отличается. на старом сервере не ставили сервис паки со времен царя гороха, на новом - по крайней какой-то ставили годичной давности.
медленный select на ms sql
-
- Уже с Приветом
- Posts: 2044
- Joined: 31 Jul 2000 09:01
- Location: NJ, USA
-
- Уже с Приветом
- Posts: 28294
- Joined: 29 Aug 2000 09:01
- Location: SPB --> Gloucester, MA, US --> SPB --> Paris
-
- Уже с Приветом
- Posts: 2044
- Joined: 31 Jul 2000 09:01
- Location: NJ, USA
После того как успокоился от такой несправедливости вижу, что от запроса дело не зависит, то есть в простейшем случае select * from rtsb.m дает примерно тот же результат. Разница в том, что на старом сервере первый запрос делается относительно медленно, все последующие такие же запросы делаются быстро. На новом сервере всегда одинаково медленно.
Execution plan говорит что 99% уходит на clustered index scan. В индекс входит три поля int. Да, речь идет о 10000 записях, памяти итд везде достаточно.
Такое ощущение что где-то есть буфер, который слишком маленький на новом сервере, или кеширование, которое выключено.
Execution plan говорит что 99% уходит на clustered index scan. В индекс входит три поля int. Да, речь идет о 10000 записях, памяти итд везде достаточно.
Такое ощущение что где-то есть буфер, который слишком маленький на новом сервере, или кеширование, которое выключено.
-
- Уже с Приветом
- Posts: 28294
- Joined: 29 Aug 2000 09:01
- Location: SPB --> Gloucester, MA, US --> SPB --> Paris
Не ограничена ли серверу память на новом сервере ? (смотреть в пропертях сервера)
Не страдает ли он от page faults при конкуренции за память с другими процессами ?
Нет ли на сервере другой sql-активности, "выбивающией" кэш ?
не летит ли вас RAID "на одном крыле" ? Скопируйте в nul файл одного размера на старом сервере и на новом кстати.
Не страдает ли он от page faults при конкуренции за память с другими процессами ?
Нет ли на сервере другой sql-активности, "выбивающией" кэш ?
не летит ли вас RAID "на одном крыле" ? Скопируйте в nul файл одного размера на старом сервере и на новом кстати.
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
-
- Уже с Приветом
- Posts: 956
- Joined: 04 Mar 2002 10:01
olegkin wrote:После того как успокоился от такой несправедливости вижу, что от запроса дело не зависит, то есть в простейшем случае select * from rtsb.m дает примерно тот же результат. Разница в том, что на старом сервере первый запрос делается относительно медленно, все последующие такие же запросы делаются быстро. На новом сервере всегда одинаково медленно.
Execution plan говорит что 99% уходит на clustered index scan. В индекс входит три поля int. Да, речь идет о 10000 записях, памяти итд везде достаточно.
Такое ощущение что где-то есть буфер, который слишком маленький на новом сервере, или кеширование, которое выключено.
Выйти-войти, в смысле пересоздать индекс пробовали?
-
- Уже с Приветом
- Posts: 2044
- Joined: 31 Jul 2000 09:01
- Location: NJ, USA
Я знал что это глупая проблема, но не знал что настолько. Перепробовал все что рекомендовали, новый сервер бьет старый по всем параметрам. Спасибо за рекомендации, хотя надеюсь на будущее они не пригодятся
Проблема была в query analyzer на новом сервере, который общался с сервером через named pipes вместо tcp/ip как на других рабочих местах.
К сожалению, новый сервер стоит на коло, и с ним общаемся через T1,
в отличие от локального старого. Было бы все в локальной сети, быстрее бы расскусил эту проблему
Проблема была в query analyzer на новом сервере, который общался с сервером через named pipes вместо tcp/ip как на других рабочих местах.
К сожалению, новый сервер стоит на коло, и с ним общаемся через T1,
в отличие от локального старого. Было бы все в локальной сети, быстрее бы расскусил эту проблему