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

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

968  1 2 все
  rimqpp0 постоялец27.07.11 11:40
27.07.11 11:40 
Последний раз изменено 27.07.11 11:44 (rimqpp0)
Есть проблема с MSSQL : Есть процедура которая выполняется один раз за час, после чего обрезаю лог-файл. Потом запускаю ее еще раз и все крутится сутками и не завершается
Запрос идет бесконечно, похоже что запрос просто "висит" и ждет чтоб ему "дать пинка". В профайлере никакой реакции на прсходящее.
трудно описать словами, приведу некоторые куски кода.
есть таблица типа
CREATE TABLE [dbo].[_tmp2](
[ID] [int] IDENTITY(1,1) NOT NULL,
[Film_ID] [int] NULL,
[Liz_Gebiet_ID] [int] NULL,
[Liz_Art_ID] [int] NULL,
.........
) ON [PRIMARY]

В ней групповой Index na все ID's кроме IDENTITY
В самой процедуре есть с десяток запросов типа
DELETE FROM _tmp2 WHERE ID IN (
SELECT t.ID
FROM _tmp2 t
INNER JOIN _tmp2 t2 ON T2.VK = t.VK AND t2.Film_ID = t.Film_ID AND t2.Liz_Gebiet_ID = t.Liz_Gebiet_ID AND t2.Liz_Art_ID = t.Liz_Art_ID

Вручную запросы отрабативаются за несколъко минут
Как рисовал выше запускаю процедуру 1 раз, все отрабатывается корректно за час. обрезаю протокол, запускаю еще раз все "виснет". потом вдруг после очередного зауска начинает опять все отрабатыватся зяа час.
Что может так "виснуть" в MS SQL? Есть какие то установы на процедуру типа
CREATE PROCEDURE [dbo].[proc_Name] WITH EXECUTE AS SELF
которые "форсируют" запросы ? (приведенный не помогает)
#1 
Murr патриот27.07.11 13:42
Murr
NEW 27.07.11 13:42 
в ответ rimqpp0 27.07.11 11:40
Размер ЛОГ-файла?
#2 
  rimqpp0 постоялец27.07.11 14:30
NEW 27.07.11 14:30 
в ответ Murr 27.07.11 13:42
500 мб при размере базы 1гиг
#3 
BSDLamer Хвостатый Carpal Tunnel27.07.11 14:50
BSDLamer
NEW 27.07.11 14:50 
в ответ rimqpp0 27.07.11 11:40
http://www.sql.ru/forum/actualthread.aspx?bid=1&tid=869126&pg=1
0001, 0010, 0011, 0100, 0101, вышел зайчег погулядь
#4 
  rimqpp0 постоялец27.07.11 14:52
NEW 27.07.11 14:52 
в ответ BSDLamer 27.07.11 14:50
ну и ?
#5 
BSDLamer Хвостатый Carpal Tunnel27.07.11 15:20
BSDLamer
NEW 27.07.11 15:20 
в ответ rimqpp0 27.07.11 14:52
ну там то дело наверное говорят
0001, 0010, 0011, 0100, 0101, вышел зайчег погулядь
#6 
  rimqpp0 постоялец27.07.11 15:32
NEW 27.07.11 15:32 
в ответ BSDLamer 27.07.11 15:20
продолжаю обхаяную дискуссию хотя докопались не до того что надо.. как всегда
#7 
BSDLamer Хвостатый Carpal Tunnel27.07.11 16:17
BSDLamer
NEW 27.07.11 16:17 
в ответ rimqpp0 27.07.11 15:32
там DBA со стажем сидят и наверное пытаются пнуть сначала в сторону грамотной конфигурации базы.
0001, 0010, 0011, 0100, 0101, вышел зайчег погулядь
#8 
Murr патриот27.07.11 17:05
Murr
NEW 27.07.11 17:05 
в ответ rimqpp0 27.07.11 14:30
Похоже, что тоже самое, что было у меня года четыре назад - инкрементация размера базы/лога.
Я бы задал принудительно начальный размер базы в 3Гб и лог порядка 6Гб и посмотрел бы на результат.
Даа... антивирю на сиквеле делатй нечего...
#9 
  rimqpp0 постоялец27.07.11 17:06
NEW 27.07.11 17:06 
в ответ BSDLamer 27.07.11 16:17, Последний раз изменено 27.07.11 17:09 (rimqpp0)
ну да как полагается именно пнуть .. но иногда удается докопатся до чего то полезного
если докопаюсь изложу истину
хотя вопросы иногда достают.. типа какая стратегия backup.. написал вроде .. не пойму чего хотят
#10 
BSDLamer Хвостатый Carpal Tunnel27.07.11 17:31
BSDLamer
NEW 27.07.11 17:31 
в ответ rimqpp0 27.07.11 17:06, Последний раз изменено 27.07.11 17:34 (BSDLamer)
я не спец в MS SQL (а точнее я его ни разу в жизни не видел), но сдается мне что ты делаешь чет фундаментально не правильно.
Спросили про стратегию бекапа потому что redo/undo для восстановления как сам понимаешь очень важны и может перед тем как давать тебе дальнейшие советы людям надо знать какая стратегия бекапа иначе в один прекрасный день можно и не восстановить базу.
0001, 0010, 0011, 0100, 0101, вышел зайчег погулядь
#11 
Murr патриот27.07.11 18:13
Murr
NEW 27.07.11 18:13 
в ответ BSDLamer 27.07.11 17:31
фундаментально не правильно.
-----
На то оно и сиквел - транзакция либо выполнится, либо откатися - никаких вариантов...
и не восстановить базу.
------
Только в одном случае - когда нет полного бекапа. Остальное - выше..
И ето не влияет на время выполнения процедур - тут только локи, инцременты и т.п... сиквел, в общем...
#12 
  rimqpp0 постоялец27.07.11 18:18
NEW 27.07.11 18:18 
в ответ Murr 27.07.11 18:13, Последний раз изменено 27.07.11 18:19 (rimqpp0)
No body
#13 
  rimqpp0 постоялец27.07.11 18:20
NEW 27.07.11 18:20 
в ответ BSDLamer 27.07.11 17:31
да чушь. там просто надо докопат'ся до пустого места. на 20 дурацких ответов может найдется что то правильное.. уже пару полезных строк я нашел.
народу вкайф посмаковать что я меняю тип базы с спростого на полный и обрезаю LOG промежутке.
я так уже пару лет делаю с новым 2008 и нет проблем.
ну нашим надо обхаять не имея представления о чем речь. ето нормально на русских порталах.
#14 
BSDLamer Хвостатый Carpal Tunnel27.07.11 18:43
BSDLamer
NEW 27.07.11 18:43 
в ответ Murr 27.07.11 18:13
то что это прямого отношения к проблеме не имеет понятно, читай выше.
В ответ на:
На то оно и сиквел - транзакция либо выполнится, либо откатися - никаких вариантов...

данные пишутся в MS SQL сразу на диск ?
В ответ на:
Только в одном случае - когда нет полного бекапа. Остальное - выше..

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

садись, два :) время выполнения зависит от гораздо большего количества ожиданий
0001, 0010, 0011, 0100, 0101, вышел зайчег погулядь
#15 
BSDLamer Хвостатый Carpal Tunnel27.07.11 18:48
BSDLamer
NEW 27.07.11 18:48 
в ответ rimqpp0 27.07.11 18:20
В ответ на:
народу вкайф посмаковать что я меняю тип базы с спростого на полный и обрезаю LOG промежутке.

я думаю что там почти всем пох какой у тебя тип базы. Просто иногда люди не понимающие что делают стреляют себе в ногу, но замечают это только тогда когда база рухнула и ее надо восстанавливать, а накатить изменения после полного бекапа уже неоткуда.
не буду утверждать, я даже в принципе не знаю как работает redo/undo в MS SQL.
0001, 0010, 0011, 0100, 0101, вышел зайчег погулядь
#16 
  rimqpp0 постоялец27.07.11 18:56
NEW 27.07.11 18:56 
в ответ BSDLamer 27.07.11 18:48
ладно будем заниматьса каждый своим и не стрелять по ногам
#17 
Murr патриот27.07.11 23:23
Murr
NEW 27.07.11 23:23 
в ответ BSDLamer 27.07.11 18:43
данные пишутся в MS SQL сразу на диск ?
------
А кого оно волнует - незавершенка откатится при рестарте...
В остальном - сиквел - версионка - напишет сколько ему надо для комплишена.
надо еще кой чего
------
Да, надо. Правда Я имел в виду другое - базу из частичных бекапов не собрать...
время выполнения
------
Это функция числа систем в кластере.
#18 
BSDLamer Хвостатый Carpal Tunnel28.07.11 07:50
BSDLamer
NEW 28.07.11 07:50 
в ответ Murr 27.07.11 23:23
В ответ на:
А кого оно волнует - незавершенка откатится при рестарте...
В остальном - сиквел - версионка - напишет сколько ему надо для комплишена.

обычно это волнует грамотных девелоперов и dba. Информация о транзакциях была она закоммичена или нет тожет должна где-то держаться, и то что накатывать или откатывать тоже надо кудато класть.
В ответ на:
Это функция числа систем в кластере.

ясно, о wait events ты не слышал :)
0001, 0010, 0011, 0100, 0101, вышел зайчег погулядь
#19 
Murr патриот28.07.11 14:05
Murr
NEW 28.07.11 14:05 
в ответ BSDLamer 28.07.11 07:50
обычно это волнует грамотных девелоперов и dba.
------
А Я - неграмотный. У меня сперли удостоверение об владении языком известной с(т)раны и теперь - сАвсем неграмотный...
тожет должна где-то держаться
------
Где и как - совершенно не волнует. Волнует - транзакция либо выполнится, либо не выполнится. На этом - все.
Если начнет волновать куда и что пишет сиквел - не будет времени делать задачу. Собственно, его и родили
от необходимости изолировать эти детали от разработчика.
о wait events ты не слышал
------
А ты им управлять из СКЛ можешь? Нет?!! - тогда нахрен тебе об нем знать... вот про локи-дедлоки - надо, но это как раз нормально.
#20 
1 2 все