Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

MS SQL Server : "Зависает Query после обрезания Log-файла"

968  1 2 все
BSDLamer Хвостатый Carpal Tunnel28.07.11 14:25
BSDLamer
NEW 28.07.11 14:25 
в ответ Murr 28.07.11 14:05
В ответ на:
А Я - неграмотный.

вижу
В ответ на:
Где и как - совершенно не волнует.

ну хозяин барин
В ответ на:
Волнует - транзакция либо выполнится, либо не выполнится. На этом - все.

такой подход к работе ? те девелоперы которых знаю я таки смотрят в планы выполнения и wait events, там "либо выполнилось либо нет" не канает.
В ответ на:
Если начнет волновать куда и что пишет сиквел - не будет времени делать задачу.

будет, надо только один раз вникнуть в то как работает тот или инной продукт. Иначе потом появляются вопросы как у ТС. Плюс обиды что советуют "не по теме".
По мнению не безизвестного тома кайта грош цена девелоперу для которого база blackbox.
В ответ на:
А ты им управлять из СКЛ можешь? Нет?!!

wait event'ами нельзя управлять. wait events это индикатор того что происходит с запросом и с базой в целом. На них надо реагировать, а не управлять.
0001, 0010, 0011, 0100, 0101, вышел зайчег погулядь
#21 
Murr патриот28.07.11 17:01
Murr
NEW 28.07.11 17:01 
в ответ BSDLamer 28.07.11 14:25
девелоперы которых знаю я таки смотрят в
------
Днями шеф принес лог трассировки доступа к сайту... 170 однвременных аплоудов (не довнладов) - потолок.
Спашивает - Что можешь сделать? - отвечаю - Смотрел поверхностно, могу улучшить примерно в два раза.
Больше - не уверен, надо смотреть детали, но туда надо лезть после вот этого и вот этого. - гворит он мне
- Ладно, делай что считаешь нужным, потом еще раз потестим и подумаем.
За полдня Я поднял производительность примерно в 5 раз. Никаких планов запросов и тому подобной
чепухи - прямой анализ того, что лишнего делает система и урезание узких мест - там были ненужные
перезапросы. Производительность, на сегодня, устраивает. Можно повысить еще раза в три... для этого
надо всего лишь переработать... базовый код примерно 300 сайтов.
не канает.
------
Канает. Я бы просто выгнал прикладника, который полез бы базу, вместо грамотного использования
предоставленного интерфейса.
Но в тоже время - вигрыз бы мозги ДБА если бы интерфейс не покрывал требования задачи...
По мнению не безизвестного тома
------
...а кто такой этот Пикасо?
На них надо реагировать
------
Неа... У меня вот сейчас аналог этого эвента... с задержкой на 20-25 часов... Шеф, когда Я обяснил что
и зачем там делается, просто кипятком писает - полная асинхроника там, где до этого юзери по 10-15
минут ждали синхронного ответа системы... А работа - хоть по шедуллеру, хоть по идлу, хоть по внешнему
запросу... и пофиг на то, сколько там ждать - она отработает вовремя и гарантированно.
#22 
BSDLamer Хвостатый Carpal Tunnel28.07.11 17:16
BSDLamer
NEW 28.07.11 17:16 
в ответ Murr 28.07.11 17:01
В ответ на:
Я бы просто выгнал прикладника, который полез бы базу, вместо грамотного использования
предоставленного интерфейса.

смотреть статистику которую тебе дает база и есть грамотное ее использование девелопером.
В ответ на:
...а кто такой этот Пикасо?

пожалуй самый знаменитый эксперт по базам (в особенности оракловым)
В ответ на:
Никаких планов запросов и тому подобной
чепухи

дальше можешь не рассказывать, все ясно короче :)
0001, 0010, 0011, 0100, 0101, вышел зайчег погулядь
#23 
Murr патриот28.07.11 18:01
Murr
28.07.11 18:01 
в ответ BSDLamer 28.07.11 17:16
смотреть статистику
------
Для ДБА. Прикладнику там делать нефиг...
самый знаменитый
------
А... ну бог с ним... Помнится, надо было что-то починить... мелочевка какая-то... ну да только разработчики смогли разобраться что да как...
Про экспертов - это отдельная пеСТня... Скоро оно будет классифицироваться как ругательство... по крайней мере в известной с(т)ране...
все ясно
-----
Так оно и до начала было ясно...
#24 
Nucleas прохожий31.07.11 19:12
NEW 31.07.11 19:12 
в ответ rimqpp0 27.07.11 11:40
Такое поведение говорит о том, что база битая.
Иногда помогает прибить индекс и заново его создать.
По правильному в зависимости от нагрузки должны отрабатывать Maintenance Plans. Например ночью часа в 3.
Если Maintenance проваливается дальше Repair без разрешения исправлений и потом по результатам с разрешением.
Естественно не забывать про бакап, который должен быть по расписанию. Обрезание также по расписанию.

#25 
  rimqpp0 постоялец03.08.11 15:29
NEW 03.08.11 15:29 
в ответ Nucleas 31.07.11 19:12
меня на sql.ru облили с ног до головы за то что я обрезаю log а потом делаю shrinkdatabase.
посмотрел в нете, помоему закономерная последовательность. но похоже все равно что то не так.
могут быть какие то проблемы если так сделать?
backup log @db_name with no_log
dbcc shrinkfile (2,0)
backup режется в процедуре до и после выполнения update's ночью.. днем работает приложение, вечером в 10 backup. в 3 ночи updates.
так работает все несколько лет. в одной из баз наблюдаю выше описанное. таблицы создаются тоже в процедуре, потом к ним добавляются индексы, все отрабытывается, таблицы удаляются.
саму процедуру разбил на шаги.. по 200-300 datensätze..всего околко 10 тыс.
раз процедура отрабытывает за 2 часа, второй раз виснет в одном из запросов (место не фиксировано). меняю шаг, опять все отрабытывется.. не пойму че за хрень..
#26 
Nucleas прохожий03.08.11 19:52
NEW 03.08.11 19:52 
в ответ rimqpp0 03.08.11 15:29
Форум sql.ru на самом деле полезный.
Лог файл - это файл в котором выполняются транзакции, он и называется Transaction Log. Если к базе никто не обращается, то его можно сжать, если модель не FULL(не требуется хранить транзакции), а потом делать бакап(просто места меньше, если бакап не инкрементальный). Естественно он растет в момент выполнения процедуры, и если прервать транзакцию, то все должно вернуться назад. Естественно после выполнения процедуры его сжимать не надо.
DBCC CHECKDB - проверяет целостность базы если у Вас целостность в порядке, то дело в процедуре.
Может быть все, что угодно вплоть до распределенных транзакций (которые выплняются на двух или более серверах).
Да и выполнение процедуры 1 час -- не радует изначально. Для чистки лучше 60 раз по секунде(это не опечатка), кстати и лог расти не будет.
#27 
  rimqpp0 постоялец03.08.11 20:39
NEW 03.08.11 20:39 
в ответ Nucleas 03.08.11 19:52, Последний раз изменено 04.08.11 10:00 (rimqpp0)
ошибку дает
The In-row data USED page count for object "Liz_Avail_Lizenz_Mandant", index ID 2, partition ID 603070911152128, alloc unit ID 603070911152128 (type In-row data) is incorrect. Run DBCC UPDATEUSAGE.
после DBCC UPDATEUSAGE Job отработал без ошибок ночью. спасибо за инфо.
#28 
1 2 все