Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 MSSQL Server . database  [new]
Dimmy
Member

Откуда: Ставрополь
Сообщений: 57
Следующая делемма:
был сервер бд mssql на машине 1400 celeron 256MB, слабенькая в общем.

Скопировали все базу на 2х процессорную машину 4000 оп/сек , 1024MB

Запускаю одну мега процедуру на первой: 2 мин.
На новой : 51 мин.

Вопрос: КАК СДЕЛАТЬ ТАК ЧТОБЫ СКОРОСТЬ БЫЛА МАКСИМАЛЬНОЙ?
6 окт 04, 17:55    [1013994]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL Server . database  [new]
Leshic
Member

Откуда:
Сообщений: 201
Первый раз любой запрос, любая процедура выполняется гораздо медленней
6 окт 04, 17:57    [1014001]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL Server . database  [new]
Dimmy
Member

Откуда: Ставрополь
Сообщений: 57
а есть способ ускорения работы сервера? как его настроить?
что запретить , что поменять какие параметры выставить и все такое?
6 окт 04, 18:00    [1014009]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL Server . database  [new]
Leshic
Member

Откуда:
Сообщений: 201
второй раз у вас тоже 51 минута?
6 окт 04, 18:01    [1014013]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL Server . database  [new]
Dimmy
Member

Откуда: Ставрополь
Сообщений: 57
второй раз все еще длится... :-)))))))
6 окт 04, 18:03    [1014025]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL Server . database  [new]
Dimmy
Member

Откуда: Ставрополь
Сообщений: 57
уже прошло более 3 мин.
Нет. все-равно что-то не так. Теоретически она должна идти меньше 2 мин - время слабого сервера.
6 окт 04, 18:05    [1014030]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL Server . database  [new]
_Alexander_
Member

Откуда:
Сообщений: 321
Советую почитать одного местного гуру:
http://support.lime-systems.com/sqldba/Configure/index.php
6 окт 04, 18:07    [1014036]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL Server . database  [new]
Dimmy
Member

Откуда: Ставрополь
Сообщений: 57
Спасибо, но все=же
есть что-нибудь поновее, для SQL Server 2000 ?
6 окт 04, 18:10    [1014050]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL Server . database  [new]
Dimmy
Member

Откуда: Ставрополь
Сообщений: 57
вопрос все еще открыт!
6 окт 04, 18:14    [1014066]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL Server . database  [new]
_Alexander_
Member

Откуда:
Сообщений: 321
Вы сначала это освойте :)
Поновее- НТ, NT fibers
Советую пересмотреть свою мега-процедуру на предмет оптимизации в синтаксисе 2000-го.
Может, машину стоит переставить? Попробуйте развернуть базу еще на какой-то машине и посмотреть там, из характеристики старого сервера следует, что размер БД скорее всего меньше 2-х гиг, МСДЕ хватит. Такое отличие по скорости между серверами не встречал ни разу.
6 окт 04, 18:20    [1014094]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL Server . database  [new]
_Alexander_
Member

Откуда:
Сообщений: 321
Glory разместил правила постинга, почитайте. Мало информации по серверам точнне, ее нет вобще! Что за база, какие винты (рэйды) и т.д.
6 окт 04, 18:23    [1014104]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL Server . database  [new]
Dimmy
Member

Откуда: Ставрополь
Сообщений: 57
могу даже скриншот дать, если не верите.
Изменений не делал никаких с процедурой!

Старая машина - 2мин.
Новая (в 6 быстрее) - 24мин и все еще длится...

переставлять на новую нет возможности.
перелистываю все хелпы по оптимизации MS-r 2000 ,
эффект - 0.

Нужна помощь опытных людей. Мож кто знает где и какие флаги ставить?
6 окт 04, 18:25    [1014114]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL Server . database  [new]
----------------
Guest
Статистику проапдейть
6 окт 04, 18:55    [1014166]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL Server . database  [new]
Glory
Member

Откуда:
Сообщений: 104764
Скопировали все базу на 2х процессорную машину 4000 оп/сек , 1024MB

Надо перестроить индексы или полностью обновить статистику
6 окт 04, 19:15    [1014204]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL Server . database  [new]
Quark
Member

Откуда: Екат
Сообщений: 1099
Если все вышепредложенное не поможет,
можете попробовать
EXEC master.dbo.sp_configure 'max degree of parallelism', '1'
7 окт 04, 09:09    [1014734]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL Server . database  [new]
Dimmy
Member

Откуда: Ставрополь
Сообщений: 57
Экспериментальным путем было установлено, что основное время задержки, на которое тратится максимум времени - возврат из внутренней подпроцедуры, вызываемой основной процедурой.
Убрал статистику, max degree of parallelizm был установлен в 1 - эффекта - никакого.
7 окт 04, 10:51    [1015127]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL Server . database  [new]
Glory
Member

Откуда:
Сообщений: 104764
Убрал статистику
Что такое "убрал"? Надо ее обновить. Еще лучше - перестроить все индексы через удаление и создание заново.

возврат из внутренней подпроцедуры
Это RETURN ? Или что ?
7 окт 04, 11:11    [1015219]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL Server . database  [new]
Dimmy
Member

Откуда: Ставрополь
Сообщений: 57
Создал индексы для всех таблиц по наиболее часто используемым полям - скорость увеличилась, но все равно очень долго, основное время - возврат из подпроцедур.

Полное описание новой машины:
- 2а гипертритинговых процессора xeon
- 2 дисковых массива RAID ~500GB
- 2GB ОЗУ

Процедура работает с мега-таблицами.
7 окт 04, 11:31    [1015292]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL Server . database  [new]
Dimmy
Member

Откуда: Ставрополь
Сообщений: 57
индексов не было вообще.
создал их заново.
статистику обновил. стоит св-во autoupdate statistics

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

while @c>0
exec mainp @b output, @c output

Процедура работает исправно но медленно на быстрой машине
и быстро на медленной.
7 окт 04, 11:36    [1015317]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL Server . database  [new]
Glory
Member

Откуда:
Сообщений: 104764
- 2а гипертритинговых процессора xeon
Выясняются все более интересные подробности :)
А операционная система у нас Windows 2000 ?

2 дисковых массива RAID

RAID-5 наверное ? И как разнесены файлы всех баз данных ?

2GB ОЗУ
А сколько отдано SQL-ю ?

основное время - возврат из подпроцедур.
Что именно этот ваш "возврат из подпроцедур" ? Чем вы установили что проблема именно в нем - Profiler-ом смотрели ?
7 окт 04, 11:38    [1015322]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL Server . database  [new]
Dimmy
Member

Откуда: Ставрополь
Сообщений: 57
Еще больше технических подробностей сказать не могу пока
(техника нет на месте :-)))))

OS Windows 2003 Server

Установил следующим образом:
везде где только можно ставлю print текущих значений

print 'before while'
while ....
begin
print 'before exec'
exec main2 ... output ....
print 'after exec'
...
end



в процедуре main2:
create procediue main2 ... as
print 'main2 - first'
...
print 'main2 - last' -- после этой строки ничего нет!!!
GO

Результат:
before while
before exec
main2 - first
main2 - last -- здесь ждем секунд 20,
after exec
before exec
main2 - first
main2 - last -- здесь ждем секунд 20 и т.д.
7 окт 04, 11:47    [1015355]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL Server . database  [new]
savosin_sergey
Member

Откуда: Москва
Сообщений: 452
2 Dimmy: у нас на фирме тоже было падение производительности на новом двух-процессорном сервере -- причём падение производительности происходило только на некоторых хранимых процедурах. выяснилось, что RAID-контроллер тормозит при записи. выход: лиоб его убрать (винт повесить на обычное IDE), либо купить нормальный RAID долларов за 1400..
7 окт 04, 11:54    [1015392]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL Server . database  [new]
Dimmy
Member

Откуда: Ставрополь
Сообщений: 57
оборудование здесь винить нельзя.
Винты - работаэт идеально, проверено.
Все дело в настройках сервера.
7 окт 04, 11:56    [1015398]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL Server . database  [new]
Dimmy
Member

Откуда: Ставрополь
Сообщений: 57
Вот точное описание нового сервера:
Dual Xeon 3.2GHz HT, 2GB, 2*74GB SCSI320, w2k3srv
выделено 1Gb - для MSSQL Server 2000 .
7 окт 04, 12:14    [1015481]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL Server . database  [new]
Glory
Member

Откуда:
Сообщений: 104764
main2 - last -- здесь ждем секунд 20,
Если в QA ждем то вообще-то результат команды print не возвращается клиенту сразу же после ее выполнения. Лучше использовать
RAISERROR ('main2 last', 0, 1) WITH NOWAIT. Или еще лучше использовать profiler где видно duration на каждый sqlstatement и sqlbatch
7 окт 04, 12:24    [1015537]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить