Народ. Такой трабл. SQLServer. Таблица из 8 полей. Все настроено по умолчанию. В таблиуе 500000 записей. Делаем команду INSERT.... Все как положено. Через две минуты покаманда выполняется задержка какая то... но потом еще раз запускаем — все ыполняется мгоновенно. Т.е. иногда при работе SQLServer выдает ошибку работы по timeout — т.е. не уложился во время, отведенное для выполнения команды.Как думаете че такое с ним может быть. В реальности все работает в комплексе и это вешает все.Подскажите что с ним сделать попробовать.
Здравствуйте, TSVSerg, Вы писали:
TSV>Конфигурация: TSV>MS Server 2003. Sql Server 2000.
TSV>Народ. Такой трабл. SQLServer. Таблица из 8 полей. Все настроено по умолчанию. В таблиуе 500000 записей. Делаем команду INSERT.... Все как положено. Через две минуты покаманда выполняется задержка какая то... но потом еще раз запускаем — все ыполняется мгоновенно. Т.е. иногда при работе SQLServer выдает ошибку работы по timeout — т.е. не уложился во время, отведенное для выполнения команды.Как думаете че такое с ним может быть. В реальности все работает в комплексе и это вешает все.Подскажите что с ним сделать попробовать.
Логи переполняются, вот он и тормозит. Почисть их.
- И сказал я, что хорошо. А теперь хорошо платите.
Он закашлялся, потому что в воздухе было многовато углекислого газа, но, сами понимаете, ни один вновь построенный объект не сдается без отдельных недоделок.
Р. Желязны. Свет Угрюмого.
Здравствуйте, magos, Вы писали:
M>Здравствуйте, TSVSerg, Вы писали:
TSV>>Конфигурация: TSV>>MS Server 2003. Sql Server 2000.
TSV>>Народ. Такой трабл. SQLServer. Таблица из 8 полей. Все настроено по умолчанию. В таблиуе 500000 записей. Делаем команду INSERT.... Все как положено. Через две минуты покаманда выполняется задержка какая то... но потом еще раз запускаем — все ыполняется мгоновенно. Т.е. иногда при работе SQLServer выдает ошибку работы по timeout — т.е. не уложился во время, отведенное для выполнения команды.Как думаете че такое с ним может быть. В реальности все работает в комплексе и это вешает все.Подскажите что с ним сделать попробовать.
M>Логи переполняются, вот он и тормозит. Почисть их.
Так не понял ... а как это работает без вмешательсва программиста.. SQL Server сам не делаем перезаписи или очистки. Ведь мы просто ограничиваем log a там как я понимаю это его задача, или нет?
Здравствуйте, TSVSerg, Вы писали:
TSV>Как думаете че такое с ним может быть. В реальности все работает в комплексе и это вешает все.Подскажите что с ним сделать попробовать.
Причин может быть достаточно много...
Например неудачный кластерный индекс при большом количестве вставок или наоборот отсутствие индексов... В этом случае между транзакциями может случиться драка за последнюю страницу.
Нужна более полная картина.
Здравствуйте, Merle, Вы писали:
M>Здравствуйте, TSVSerg, Вы писали:
TSV>>Как думаете че такое с ним может быть. В реальности все работает в комплексе и это вешает все.Подскажите что с ним сделать попробовать. M>Причин может быть достаточно много... M>Например неудачный кластерный индекс при большом количестве вставок или наоборот отсутствие индексов... В этом случае между транзакциями может случиться драка за последнюю страницу. M>Нужна более полная картина.
А как посмотреть в чем затыкается MSSQL. Не могу понять че от творит там. Диск работает на полную катушку, система подвисает из-за высокой загрузки проуа.Сделсть то особо ничего уже на компе не получается. А так я из прогри под NET делаю стандартную команду INSERT в MSSQL, а другая софтина читает данные из сервера. Вроде ничего криминального и сложного тут нет (
Здравствуйте, TSVSerg, Вы писали:
TSV>А как посмотреть в чем затыкается MSSQL. Не могу понять че от творит там. Диск работает на полную катушку, система подвисает из-за высокой загрузки проуа.
Profiler и sp_lock тебе в руки... Смотришь, какие запросы висят на блокировках, и что вообще происходит...
TSV>А так я из прогри под NET делаю стандартную команду INSERT в MSSQL, а другая софтина читает данные из сервера. Вроде ничего криминального и сложного тут нет (
Тогда скорее всего основная причина — большое количество блокировок, из-за неоптимально написаных запросов для софтины которая читает данные.
Возможно слишком большие транзакции или неправильно подобранные индексы...
Берешь профайлер и смотришь, кто что читает, планы запросов, какие транзакции отрабатывают и сколько времени это занимает, находишь самое узкое место и начинаешь его тюнить: Уменьшаешь количество операций в транзакции, подбираешь правильные индексы, если необходимо — гранулярность блокировки и т. д...
Далее находишь следующее узкое место и операцию повторяешь до достижения необходимой скорости выполнения запросов.
В самом простом варианте достаточно будет добавить один-два индекса и все полетит...
Здравствуйте, Alexey Shirshov, Вы писали:
AS>Здравствуйте, Merle, Вы писали:
AS>[]
M>>В самом простом варианте достаточно будет добавить один-два индекса и все полетит...
AS>Тюнинг первого порядка заключается в запуске Create Index Wizard, которому подсовываешь уже полученый от профайлера файл.
AS>Если продолжают наблюдаться тормоза, необходим более детальный анализ DML, структуры таблиц и индексов.
Запустил все дело немного в другой конфигурации — посмотрим что получиться.
TSV>Так не понял ... а как это работает без вмешательсва программиста.. SQL Server сам не делаем перезаписи или очистки. Ведь мы просто ограничиваем log a там как я понимаю это его задача, или нет?
Была вообщем такая же проблема, связанная с возникновением timeout'а
на серваке. Думали что проблема в коде, но оказалось, что база разраслась до 10гигов, и SQL сервер начинал интенсивно писать в логи
(особенно если много данных туда постились) Совет: увеличь размеры
логов и по необходимости чисть их.
- И сказал я, что хорошо. А теперь хорошо платите.
Он закашлялся, потому что в воздухе было многовато углекислого газа, но, сами понимаете, ни один вновь построенный объект не сдается без отдельных недоделок.
Р. Желязны. Свет Угрюмого.
TSV>>Так не понял ... а как это работает без вмешательсва программиста.. SQL Server сам не делаем перезаписи или очистки. Ведь мы просто ограничиваем log a там как я понимаю это его задача, или нет?
M>Была вообщем такая же проблема, связанная с возникновением timeout'а M>на серваке. Думали что проблема в коде, но оказалось, что база разраслась до 10гигов, и SQL сервер начинал интенсивно писать в логи M>(особенно если много данных туда постились) Совет: увеличь размеры M>логов и по необходимости чисть их.
Да... дело походу дествительно в log файлах. Но какую процедуру написать, чтобы чистить log файл. Или просто ограничить его размер?
Здравствуйте, TSVSerg, Вы писали:
TSV>Да... дело походу дествительно в log файлах.
Что-то меня серьезные сомнения по этому поводу терзают... Единственная неприятность которая может случиться по причине лога — нехватка места на диске...
TSV>Но какую процедуру написать, чтобы чистить log файл. Или просто ограничить его размер?
Бакапить во время и проблем не будет...
Здравствуйте, TSVSerg, Вы писали:
TSV>Здравствуйте, magos, Вы писали:
TSV>>>Так не понял ... а как это работает без вмешательсва программиста.. SQL Server сам не делаем перезаписи или очистки. Ведь мы просто ограничиваем log a там как я понимаю это его задача, или нет?
M>>Была вообщем такая же проблема, связанная с возникновением timeout'а M>>на серваке. Думали что проблема в коде, но оказалось, что база разраслась до 10гигов, и SQL сервер начинал интенсивно писать в логи M>>(особенно если много данных туда постились) Совет: увеличь размеры M>>логов и по необходимости чисть их.
TSV>Да... дело походу дествительно в log файлах. Но какую процедуру написать, чтобы чистить log файл. Или просто ограничить его размер?
Все зависит от того, как часто кидаются данные и какого объема.
В нашем случае уже SQLServer не справлялся с работой и мы сейчас
переносим весь комплекс под платформу Oracle.
- И сказал я, что хорошо. А теперь хорошо платите.
Он закашлялся, потому что в воздухе было многовато углекислого газа, но, сами понимаете, ни один вновь построенный объект не сдается без отдельных недоделок.
Р. Желязны. Свет Угрюмого.