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

Откуда:
Сообщений: 93
Добрый день!
Имеется сайт (нагрузка 2000 чел/день).

Есть хранимая процедура:
ALTER PROCEDURE [dbo].[cms_Forum_CalcLastPost]
		  (
		  @pUserId uniqueidentifier =null,
		  @pWebProjectId uniqueidentifier =null,
		  @pComponentId uniqueidentifier
		  )
	   as
begin try
		begin transaction
	
		
		declare 
			@pSubForumLastPostDate datetime=null,
			@pForumTopicLastPostDate datetime=null,
			@pForumTopicLastPostId uniqueidentifier=null,
			@pSubForumLastPostId uniqueidentifier=null
		/**/
	
		select 
			top 1
			@pForumTopicLastPostDate = fp.POST_DATE,
			@pForumTopicLastPostId=ft.LAST_POST_ID
			
		from
		cms_tblComponent c 
			inner join 
			cms_tblForumTopic ft 
			 on c.COMPONENT_ID=ft.COMPONENT_ID
				inner join cms_tblForumPost fp
				on ft.LAST_POST_ID=fp.FORUM_POST_ID
		where
			c.OWNER_ID=@pComponentId
			and
			c.INSTANCE_STATE_ID='F7875EBF-B289-4B03-B947-DCA6AD82B0E8'
			and
			fp.INSTANCE_STATE_ID in ('F7875EBF-B289-4B03-B947-DCA6AD82B0E8','C5335F7B-B1B6-4A02-B0DC-C0AECEE1C2A8')	
		order by fp.POST_DATE desc
	
		
		select
			top 1
			@pSubForumLastPostDate  = fp.POST_DATE,
			@pSubForumLastPostId=fp.FORUM_POST_ID
		from
			cms_tblComponent c
			inner join cms_tblForum f on
			f.COMPONENT_ID=c.COMPONENT_ID
			inner join 
			cms_tblComponentChild cc
			on cc.CHILD_ID=c.COMPONENT_ID
			and cc.COMPONENT_ID=@pComponentId
			inner join cms_tblForumPost fp
			on f.LAST_POST_ID=fp.FORUM_POST_ID		
		where
			c.INSTANCE_STATE_ID='F7875EBF-B289-4B03-B947-DCA6AD82B0E8'
			and
			fp.INSTANCE_STATE_ID in ('F7875EBF-B289-4B03-B947-DCA6AD82B0E8','C5335F7B-B1B6-4A02-B0DC-C0AECEE1C2A8')	
		order by fp.POST_DATE desc
				
		declare 
			@pLastPostId uniqueidentifier=null
		
		if isnull(@pSubForumLastPostDate,'1900-01-01') >isnull(@pForumTopicLastPostDate,'1900-01-01')
		begin
			set @pLastPostId=@pSubForumLastPostId
		end
		 else
		  begin
			set @pLastPostId=@pForumTopicLastPostId
		  end
		
		update cms_tblForum   
		set
		LAST_POST_ID =@pLastPostId
		where COMPONENT_ID=@pComponentId
		

		
		declare @pParentForumId uniqueidentifier=null
		select @pParentForumId = COMPONENT_ID
		from
		 cms_tblComponentChild
		 where CHILD_ID =@pComponentId
		 

		 if @pParentForumId is not null
		 begin
		 exec cms_Forum_CalcLastPost
			@pUserId=@pUserId,
			@pWebProjectId=@pWebProjectId,
			@pComponentId=@pParentForumId
		 end

		
			exec cms_Component_DoOnChange_ 
			@pUserId=@pUserId,
			@pWebProjectId=@pWebProjectId,
			@pComponentId=@pComponentId
    if @@TRANCOUNT>0
		 commit transaction
end try
begin catch
		if @@TRANCOUNT>0
		rollback transaction 
		exec dbo.yom_raiserror
end catch	

При рекурсивном вызове:
		declare @pParentForumId uniqueidentifier=null
		select @pParentForumId = COMPONENT_ID
		from
		 cms_tblComponentChild
		 where CHILD_ID =@pComponentId
		 

		 if @pParentForumId is not null
		 begin
		 exec cms_Forum_CalcLastPost
			@pUserId=@pUserId,
			@pWebProjectId=@pWebProjectId,
			@pComponentId=@pParentForumId
		 end

Процедура виснет (не всегда, но периодически).
Долго рыл в чем дело (как чайник) и заметил такую особенность, что если убрать в первом селекте order by fp.POST_DATE desc то процедура отрабатывает.

На таблицу cms_tblForumPost есть индексы:


/****** Object:  Index [IX_cms_tblForumPost_1]    Script Date: 07/01/2011 14:34:24 ******/
CREATE NONCLUSTERED INDEX [IX_cms_tblForumPost_1] ON [dbo].[cms_tblForumPost] 
(
	[POST_DATE] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
GO


/****** Object:  Index [IX_cms_tblForumPost]    Script Date: 07/01/2011 14:34:54 ******/
CREATE UNIQUE NONCLUSTERED INDEX [IX_cms_tblForumPost] ON [dbo].[cms_tblForumPost] 
(
	[FORUM_TOPIC_ID] ASC,
	[USER_NAME] ASC,
	[POST_HASH] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON, FILLFACTOR = 70) ON [PRIMARY]
GO




Помогите куда рыть. С локами у меня пробел в знаниях хотелось бы разобраться почему так ведет себя хп.

Нагрузка на форум почти нулевая.
1 июл 11, 15:06    [10906878]     Ответить | Цитировать Сообщить модератору
 Re: Рекурсивный вызов и lock  [new]
USBcab
Member

Откуда:
Сообщений: 48
khourshed,
Если дело в локах, то можно в Activity Monitor посмотреть что именно блокирует хп.
1 июл 11, 16:29    [10907862]     Ответить | Цитировать Сообщить модератору
 Re: Рекурсивный вызов и lock  [new]
khourshed
Member

Откуда:
Сообщений: 93
USBcab,

Засада в том что глюк периодически возникает и пропадает
1 июл 11, 16:31    [10907884]     Ответить | Цитировать Сообщить модератору
 Re: Рекурсивный вызов и lock  [new]
USBcab
Member

Откуда:
Сообщений: 48
khourshed,
Вот когда возникает - тогда и надо посмотреть))
1 июл 11, 16:33    [10907908]     Ответить | Цитировать Сообщить модератору
 Re: Рекурсивный вызов и lock  [new]
Glory
Member

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

Ну так и надо начать с мониторинга того, что происходит на сервере при "Процедура виснет (не всегда, но периодически). ". Может это вовсе и не блокировки
1 июл 11, 16:37    [10907965]     Ответить | Цитировать Сообщить модератору
 Re: Рекурсивный вызов и lock  [new]
khourshed
Member

Откуда:
Сообщений: 93
Подвисал первый селект.

Что конкретно лочилось сказать не могу. Буду ждать бага
1 июл 11, 16:51    [10908121]     Ответить | Цитировать Сообщить модератору
 Re: Рекурсивный вызов и lock  [new]
khourshed
Member

Откуда:
Сообщений: 93
Причем подвисал после 2-го рекурсивного вызова. Первый проходил нормально
1 июл 11, 16:51    [10908128]     Ответить | Цитировать Сообщить модератору
 Re: Рекурсивный вызов и lock  [new]
khourshed
Member

Откуда:
Сообщений: 93
Ну вот ... история повторяется .......
В активити мониторе показывает что идет SELECT. Никаких блокировок нет .......
Самое интересно, что процедура спокойно отрабатывается в SQL Management Studio .... Полная беспомощность ....
4 июл 11, 19:27    [10920580]     Ответить | Цитировать Сообщить модератору
 Re: Рекурсивный вызов и lock  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31958
khourshed
Ну вот ... история повторяется .......
В активити мониторе показывает что идет SELECT. Никаких блокировок нет .......
Ну посмотрите, что там вооже делается, какой стейтмент выполняется в это время. Может, зацикливание примитивное...

khourshed
Самое интересно, что процедура спокойно отрабатывается в SQL Management Studio ....
С такими же параметрами?
4 июл 11, 19:38    [10920610]     Ответить | Цитировать Сообщить модератору
 Re: Рекурсивный вызов и lock  [new]
khourshed
Member

Откуда:
Сообщений: 93
alexeyvg,

Да параметры те же.

Я в дебаге пробежался в прошлый раз. виснет при втором вызове на первом селекте. Убераешь ORDER BY - работает. хрень какая то....
4 июл 11, 19:49    [10920638]     Ответить | Цитировать Сообщить модератору
 Re: Рекурсивный вызов и lock  [new]
khourshed
Member

Откуда:
Сообщений: 93
Теперь все виснет.
Трейс показывает последнюю команду
select 
			top 1
			@pForumTopicLastPostDate = fp.POST_DATE,
			@pForumTopicLastPostId=fp.FORUM_POST_ID
			
		from
		cms_tblComponent c 
			inner join 
			cms_tblForumTopic ft 
			 on c.COMPONENT_ID=ft.COMPONENT_ID
				inner join cms_tblForumPost fp
				on ft.LAST_POST_ID=fp.FORUM_POST_ID
		where
			c.OWNER_ID=@pComponentId
			and
			c.INSTANCE_STATE_ID='F7875EBF-B289-4B03-B947-DCA6AD82B0E8'
			and
			fp.INSTANCE_STATE_ID in ('F7875EBF-B289-4B03-B947-DCA6AD82B0E8','C5335F7B-B1B6-4A02-B0DC-C0AECEE1C2A8')	
		order by fp.POST_DATE desc
		
4 июл 11, 19:58    [10920651]     Ответить | Цитировать Сообщить модератору
 Re: Рекурсивный вызов и lock  [new]
khourshed
Member

Откуда:
Сообщений: 93
отрабатывает за 1минуту 30 сек.
Видимо веб клиент отваливается за это время ....
Однако опять же непонятно почему так долго...
4 июл 11, 20:02    [10920658]     Ответить | Цитировать Сообщить модератору
 Re: Рекурсивный вызов и lock  [new]
khourshed
Member

Откуда:
Сообщений: 93
Убил индекс
/****** Object:  Index [IX_cms_tblForumPost_1]    Script Date: 07/01/2011 14:34:24 ******/
CREATE NONCLUSTERED INDEX [IX_cms_tblForumPost_1] ON [dbo].[cms_tblForumPost] 
(
	[POST_DATE] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
GO

Опять заработал ......
Но это не дело....... Индекс нужен ....
4 июл 11, 20:16    [10920688]     Ответить | Цитировать Сообщить модератору
 Re: Рекурсивный вызов и lock  [new]
khourshed
Member

Откуда:
Сообщений: 93
обавил индекс ....... опять тормоза .....

вот список локов:
exec sp_lock

90 7 0 0 DB S GRANT
90 7 1904582419 2 PAG 1:127369 IX GRANT
90 7 846183056 1 KEY (cb029faba3d8) X GRANT
90 7 64836139 5 KEY (c0040beb0c6c) X GRANT
90 7 1860058258 0 TAB IX GRANT
90 7 1860058258 3 PAG 1:128465 IX GRANT
90 7 64836139 5 PAG 1:5736 IX GRANT
90 7 1904582419 1 KEY (23025e1effc5) X GRANT
90 7 64836139 3 PAG 1:103701 IX GRANT
90 7 1302152280 2 KEY (8f05ba3145fb) X GRANT
90 7 64836139 5 KEY (c00412aee62e) X GRANT
90 7 64836139 2 PAG 1:42896 IX GRANT
90 7 846183056 0 TAB IX GRANT
90 7 64836139 3 KEY (d902a5477b5c) X GRANT
90 7 64836139 4 PAG 1:128569 IX GRANT
90 7 1904582419 1 PAG 1:128630 IX GRANT
90 7 64836139 1 PAG 1:41717 IX GRANT
90 7 1904582419 1 RID 1:128630:11 X GRANT
90 7 1860058258 5 KEY (1202a71e2d6b) X GRANT
90 7 1904582419 11 KEY (dd0236c36881) X GRANT
90 7 64836139 0 TAB IX GRANT
90 7 1904582419 1 PAG 1:126442 IX GRANT
90 7 1860058258 5 PAG 1:202887 IX GRANT
90 7 1860058258 3 KEY (14024f4e3c2e) X GRANT
90 7 1302152280 1 KEY (1d016677daf0) X GRANT
90 7 1860058258 1 KEY (12027fce4388) X GRANT
90 7 64836139 5 PAG 1:102336 IX GRANT
90 7 377989369 0 TAB IX GRANT
90 7 1302152280 1 PAG 1:48197 IX GRANT
90 7 377989369 1 PAG 1:35876 IX GRANT
90 7 1904582419 2 KEY (f5037c859728) X GRANT
90 7 1904582419 11 PAG 1:48131 IX GRANT
90 7 1860058258 5 KEY (1302e1254a0e) X GRANT
90 7 377989369 1 KEY (cc02bbdde9ba) X GRANT
90 7 1302152280 3 PAG 1:2367 IX GRANT
90 7 1860058258 1 PAG 1:129592 IX GRANT
90 7 64836139 2 PAG 1:56208 IX GRANT
90 7 64836139 1 KEY (cc02bbdde9ba) X GRANT
90 7 1302152280 3 KEY (2f030ca0ac1c) X GRANT
90 7 64836139 2 KEY (590842bc1c6d) X GRANT
90 7 1904582419 1 PAG 1:128115 IX GRANT
90 7 64836139 1 KEY (12027fce4388) X GRANT
90 7 1302152280 2 PAG 1:24495 IX GRANT
90 7 846183056 1 PAG 1:178885 IX GRANT
90 7 1302152280 0 TAB IX GRANT
90 7 1860058258 5 PAG 1:203090 IX GRANT
90 7 64836139 1 PAG 1:40900 IX GRANT
90 7 1904582419 0 TAB IX GRANT
90 7 64836139 4 KEY (de046fae9d6c) X GRANT
92 7 0 0 DB S GRANT
4 июл 11, 20:31    [10920726]     Ответить | Цитировать Сообщить модератору
 Re: Рекурсивный вызов и lock  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Ну, все grant, никто никого не ждет.
4 июл 11, 20:37    [10920732]     Ответить | Цитировать Сообщить модератору
 Re: Рекурсивный вызов и lock  [new]
khourshed
Member

Откуда:
Сообщений: 93
Гавриленко Сергей Алексеевич,

Дык где засада ....?
4 июл 11, 20:46    [10920754]     Ответить | Цитировать Сообщить модератору
 Re: Рекурсивный вызов и lock  [new]
khourshed
Member

Откуда:
Сообщений: 93
Остановил сайт. Из процессов только SQL Management Studio.
ТОлько я и БД ;-) ... Все равно виснет собака .....
4 июл 11, 20:49    [10920768]     Ответить | Цитировать Сообщить модератору
 Re: Рекурсивный вызов и lock  [new]
khourshed
Member

Откуда:
Сообщений: 93
В общем индекс убил.....
Буду благодарен за ссылку на статьи/инфу которая мне поможет разобраться с сабжем......
Как то все странновато ...
4 июл 11, 20:52    [10920772]     Ответить | Цитировать Сообщить модератору
 Re: Рекурсивный вызов и lock  [new]
Леша777
Guest
1. Нужно в момент тормозов получить ожидающие таски :
SELECT * 
FROM sys.dm_os_waiting_tasks
2. План этого запроса (SET STATISICS PROFILE)
4 июл 11, 22:50    [10921083]     Ответить | Цитировать Сообщить модератору
 Re: Рекурсивный вызов и lock  [new]
Леша777
Guest
3. Не зная всей структуры и статистики распределения могу пока посоветовать
CREATE NONCLUSTERED  INDEX IX_cms_tblForumPost_Temp1 ON dbo.tblForumPost (POST_DATE, INSTANCE_STATE_ID) INCLUDE (FORUM_POST_ID)
или POST_DATE с INSTANCE_STATE_ID местами поменять.

Хотелось бы описание всех таблиц из запроса.
4 июл 11, 23:08    [10921133]     Ответить | Цитировать Сообщить модератору
 Re: Рекурсивный вызов и lock  [new]
khourshed
Member

Откуда:
Сообщений: 93
USE [Root]
GO

/****** Object:  Table [dbo].[cms_tblComponent]    Script Date: 07/04/2011 23:27:51 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[cms_tblComponent](
	[COMPONENT_ID] [uniqueidentifier] NOT NULL,
	[OWNER_ID] [uniqueidentifier] NULL,
	[COMPONENT_NAME] [nvarchar](100) NOT NULL,
	[CACHED] [bit] NOT NULL,
	[CAPTION] [nvarchar](250) NULL,
	[COMMENT] [nvarchar](max) NULL,
	[CREATE_DATE] [datetime] NULL,
	[LAST_UPDATE] [datetime] NULL,
	[SITE_USER_ID] [uniqueidentifier] NULL,
	[CLASS_ID] [uniqueidentifier] NULL,
	[INSTANCE_STATE_ID] [uniqueidentifier] NULL,
	[COMPONENT_CACHE] [xml] NULL,
	[UPDATE_CACHE_ON_CHANGE] [bit] NULL,
	[UPDATE_COUNT] [int] NOT NULL,
	[COMPONENT_CONFIGURATION] [xml] NULL,
	[CACHE_STATE] [int] NOT NULL,
 CONSTRAINT [PK_tblComponent] PRIMARY KEY CLUSTERED 
(
	[COMPONENT_ID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON, FILLFACTOR = 70) ON [PRIMARY],
 CONSTRAINT [IX_tblCmsComponent] UNIQUE NONCLUSTERED 
(
	[CLASS_ID] ASC,
	[COMPONENT_NAME] ASC,
	[OWNER_ID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON, FILLFACTOR = 70) ON [PRIMARY]
) ON [PRIMARY]

GO

ALTER TABLE [dbo].[cms_tblComponent]  WITH CHECK ADD  CONSTRAINT [FK_cms_tblComponent_cms_tblComponent] FOREIGN KEY([OWNER_ID])
REFERENCES [dbo].[cms_tblComponent] ([COMPONENT_ID])
GO

ALTER TABLE [dbo].[cms_tblComponent] CHECK CONSTRAINT [FK_cms_tblComponent_cms_tblComponent]
GO

ALTER TABLE [dbo].[cms_tblComponent]  WITH CHECK ADD  CONSTRAINT [FK_cms_tblComponent_yom_tblInstanceState] FOREIGN KEY([INSTANCE_STATE_ID])
REFERENCES [dbo].[yom_tblInstanceState] ([INSTANCE_STATE_ID])
GO

ALTER TABLE [dbo].[cms_tblComponent] CHECK CONSTRAINT [FK_cms_tblComponent_yom_tblInstanceState]
GO

ALTER TABLE [dbo].[cms_tblComponent] ADD  CONSTRAINT [DF_cms_tblComponent_G_COMPONENT_ID]  DEFAULT (newid()) FOR [COMPONENT_ID]
GO

ALTER TABLE [dbo].[cms_tblComponent] ADD  CONSTRAINT [DF_cms_tblComponent_CACHED]  DEFAULT ((0)) FOR [CACHED]
GO

ALTER TABLE [dbo].[cms_tblComponent] ADD  CONSTRAINT [DF_cms_tblComponent_G_CLASS_ID]  DEFAULT (newid()) FOR [CLASS_ID]
GO

ALTER TABLE [dbo].[cms_tblComponent] ADD  CONSTRAINT [DF_cms_tblComponent_UPDATE_COUNT]  DEFAULT ((0)) FOR [UPDATE_COUNT]
GO

ALTER TABLE [dbo].[cms_tblComponent] ADD  CONSTRAINT [DF_cms_tblComponent_CACHE_STATE]  DEFAULT ((0)) FOR [CACHE_STATE]
GO

USE [Root]
GO

/****** Object:  Table [dbo].[cms_tblForum]    Script Date: 07/04/2011 23:28:09 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[cms_tblForum](
	[COMPONENT_ID] [uniqueidentifier] NOT NULL,
	[TOPIC_COUNT] [int] NOT NULL,
	[POST_COUNT] [int] NOT NULL,
	[LAST_POST_ID] [uniqueidentifier] NULL,
	[TARGET_COMPONENT_ID] [uniqueidentifier] NULL,
	[IS_CATEGORY] [bit] NOT NULL,
	[ALLOW_GUEST_POSTS] [bit] NOT NULL,
	[EDIT_PERIOD] [int] NOT NULL,
	[ICON_URL] [nvarchar](250) NULL,
	[USE_INLINE_ADV] [bit] NULL,
	[ADV_CODE] [nvarchar](max) NULL,
 CONSTRAINT [PK_cms_tblForum] PRIMARY KEY CLUSTERED 
(
	[COMPONENT_ID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON, FILLFACTOR = 70) ON [PRIMARY]
) ON [PRIMARY]

GO

ALTER TABLE [dbo].[cms_tblForum]  WITH NOCHECK ADD  CONSTRAINT [FK_cms_tblForum_cms_tblComponent] FOREIGN KEY([COMPONENT_ID])
REFERENCES [dbo].[cms_tblComponent] ([COMPONENT_ID])
GO

ALTER TABLE [dbo].[cms_tblForum] CHECK CONSTRAINT [FK_cms_tblForum_cms_tblComponent]
GO

ALTER TABLE [dbo].[cms_tblForum]  WITH CHECK ADD  CONSTRAINT [FK_cms_tblForum_cms_tblForumPost] FOREIGN KEY([LAST_POST_ID])
REFERENCES [dbo].[cms_tblForumPost] ([FORUM_POST_ID])
GO

ALTER TABLE [dbo].[cms_tblForum] CHECK CONSTRAINT [FK_cms_tblForum_cms_tblForumPost]
GO

ALTER TABLE [dbo].[cms_tblForum] ADD  CONSTRAINT [DF_cms_tblForum_TOPIC_COUNT]  DEFAULT ((0)) FOR [TOPIC_COUNT]
GO

ALTER TABLE [dbo].[cms_tblForum] ADD  CONSTRAINT [DF_cms_tblForum_POST_COUNT]  DEFAULT ((0)) FOR [POST_COUNT]
GO

ALTER TABLE [dbo].[cms_tblForum] ADD  CONSTRAINT [DF_cms_tblForum_IS_CATEGORY]  DEFAULT ((0)) FOR [IS_CATEGORY]
GO

ALTER TABLE [dbo].[cms_tblForum] ADD  CONSTRAINT [DF_cms_tblForum_ALLOW_GUEST_POSTS]  DEFAULT ((1)) FOR [ALLOW_GUEST_POSTS]
GO

ALTER TABLE [dbo].[cms_tblForum] ADD  CONSTRAINT [DF_cms_tblForum_EDIT_PERIOD]  DEFAULT ((60)) FOR [EDIT_PERIOD]
GO

USE [Root]
GO

/****** Object:  Table [dbo].[cms_tblForumPost]    Script Date: 07/04/2011 23:28:30 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

SET ANSI_PADDING ON
GO

CREATE TABLE [dbo].[cms_tblForumPost](
	[FORUM_POST_ID] [uniqueidentifier] NOT NULL,
	[POST] [ntext] NOT NULL,
	[POST_DATE] [datetime] NOT NULL,
	[UPDATE_DATE] [datetime] NULL,
	[FORUM_TOPIC_ID] [uniqueidentifier] NOT NULL,
	[SITE_USER_ID] [uniqueidentifier] NULL,
	[PARENT_POST_ID] [uniqueidentifier] NULL,
	[USER_NAME] [nvarchar](50) NOT NULL,
	[USER_EMAIL] [nvarchar](100) NULL,
	[USER_IP] [nvarchar](50) NOT NULL,
	[POST_HASH] [varbinary](16) NOT NULL,
	[CAPTION] [nvarchar](150) NULL,
	[INSTANCE_STATE_ID] [uniqueidentifier] NOT NULL,
	[CLASS_ID] [uniqueidentifier] NULL,
 CONSTRAINT [PK_cms_tblForumPost] PRIMARY KEY CLUSTERED 
(
	[FORUM_POST_ID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON, FILLFACTOR = 70) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

GO

SET ANSI_PADDING OFF
GO

ALTER TABLE [dbo].[cms_tblForumPost]  WITH CHECK ADD  CONSTRAINT [FK_cms_tblForumPost_cms_tblForumPost] FOREIGN KEY([PARENT_POST_ID])
REFERENCES [dbo].[cms_tblForumPost] ([FORUM_POST_ID])
GO

ALTER TABLE [dbo].[cms_tblForumPost] CHECK CONSTRAINT [FK_cms_tblForumPost_cms_tblForumPost]
GO

ALTER TABLE [dbo].[cms_tblForumPost]  WITH NOCHECK ADD  CONSTRAINT [FK_cms_tblForumPost_cms_tblForumTopic] FOREIGN KEY([FORUM_TOPIC_ID])
REFERENCES [dbo].[cms_tblForumTopic] ([COMPONENT_ID])
GO

ALTER TABLE [dbo].[cms_tblForumPost] CHECK CONSTRAINT [FK_cms_tblForumPost_cms_tblForumTopic]
GO

ALTER TABLE [dbo].[cms_tblForumPost] ADD  CONSTRAINT [DF_cms_tblForumPost_POST_HASH]  DEFAULT (newid()) FOR [POST_HASH]
GO

USE [Root]
GO

/****** Object:  Table [dbo].[cms_tblForumTopic]    Script Date: 07/04/2011 23:28:44 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[cms_tblForumTopic](
	[COMPONENT_ID] [uniqueidentifier] NOT NULL,
	[LAST_POST_ID] [uniqueidentifier] NULL,
	[IS_FIXED] [bit] NOT NULL,
	[TOTAL_POSTS] [int] NOT NULL,
	[TOTAL_VIEWS] [int] NOT NULL,
	[EXPIRY_DATE] [datetime] NULL,
	[TARGET_COMPONENT_ID] [uniqueidentifier] NULL,
	[TOPIC_DATE] [datetime] NOT NULL,
	[IS_CLOSED] [bit] NULL,
	[TARGET_URL] [nvarchar](250) NULL,
 CONSTRAINT [PK_cms_tblForumTopic] PRIMARY KEY CLUSTERED 
(
	[COMPONENT_ID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON, FILLFACTOR = 70) ON [PRIMARY]
) ON [PRIMARY]

GO

ALTER TABLE [dbo].[cms_tblForumTopic]  WITH NOCHECK ADD  CONSTRAINT [FK_cms_tblForumTopic_cms_tblComponent] FOREIGN KEY([COMPONENT_ID])
REFERENCES [dbo].[cms_tblComponent] ([COMPONENT_ID])
GO

ALTER TABLE [dbo].[cms_tblForumTopic] CHECK CONSTRAINT [FK_cms_tblForumTopic_cms_tblComponent]
GO

ALTER TABLE [dbo].[cms_tblForumTopic]  WITH CHECK ADD  CONSTRAINT [FK_cms_tblForumTopic_cms_tblComponent1] FOREIGN KEY([TARGET_COMPONENT_ID])
REFERENCES [dbo].[cms_tblComponent] ([COMPONENT_ID])
GO

ALTER TABLE [dbo].[cms_tblForumTopic] CHECK CONSTRAINT [FK_cms_tblForumTopic_cms_tblComponent1]
GO

ALTER TABLE [dbo].[cms_tblForumTopic]  WITH CHECK ADD  CONSTRAINT [FK_cms_tblForumTopic_cms_tblForumPost] FOREIGN KEY([LAST_POST_ID])
REFERENCES [dbo].[cms_tblForumPost] ([FORUM_POST_ID])
GO

ALTER TABLE [dbo].[cms_tblForumTopic] CHECK CONSTRAINT [FK_cms_tblForumTopic_cms_tblForumPost]
GO

ALTER TABLE [dbo].[cms_tblForumTopic] ADD  CONSTRAINT [DF_cms_tblForumTopic_TOTAL_POSTS]  DEFAULT ((0)) FOR [TOTAL_POSTS]
GO

ALTER TABLE [dbo].[cms_tblForumTopic] ADD  CONSTRAINT [DF_cms_tblForumTopic_TOTAL_VIEWS]  DEFAULT ((0)) FOR [TOTAL_VIEWS]
GO


4 июл 11, 23:29    [10921227]     Ответить | Цитировать Сообщить модератору
 Re: Рекурсивный вызов и lock  [new]
khourshed
Member

Откуда:
Сообщений: 93
Леша777,

Сделал индекс и wait таски:

0x00C5A388 3 0 11468690 XE_DISPATCHER_WAIT NULL NULL NULL NULL NULL
0x00C5A550 6 0 3481 REQUEST_FOR_DEADLOCK_SEARCH 0x60B9015C NULL NULL NULL NULL
0x00C5A8E0 9 0 378 SQLTRACE_BUFFER_FLUSH NULL NULL NULL NULL NULL
0x00C5AE38 21 0 11463723 BROKER_TRANSMITTER NULL NULL NULL NULL NULL
0x00C4E550 4 0 396 LAZYWRITER_SLEEP NULL NULL NULL NULL NULL
0x00C4E718 7 0 11457446 KSOURCE_WAKEUP NULL NULL NULL NULL NULL
0x00C4E8E0 10 0 506 BROKER_TO_FLUSH NULL NULL NULL NULL NULL
0x00D88388 5 0 284 LOGMGR_QUEUE 0x02F53020 NULL NULL NULL NULL
0x00D88550 12 0 12237 CHECKPOINT_QUEUE 0x02F487A8 NULL NULL NULL NULL
0x00D88718 13 0 11463078 BROKER_EVENTHANDLER NULL NULL NULL NULL NULL
0x00DA2550 2 0 8363 XE_TIMER_EVENT NULL NULL NULL NULL NULL
0x00DA2718 11 0 11467965 ONDEMAND_TASK_QUEUE 0x02F842C0 NULL NULL NULL NULL
0x00DA2E38 NULL NULL 33497 FT_IFTS_SCHEDULER_IDLE_WAIT NULL NULL NULL NULL NULL
0x00DA3390 20 0 11463723 BROKER_TRANSMITTER NULL NULL NULL NULL NULL
0x00DA3C78 53 0 16460 LCK_M_S 0x07F30D20 0x1BF321C0 51 NULL keylock hobtid=72057594284408832 dbid=7 id=lock7f6a1c0 mode=X associatedObjectId=72057594284408832
0x1599A1C0 NULL NULL 11393983 CLR_AUTO_EVENT NULL NULL NULL NULL NULL
0x164481C0 NULL NULL 11364682 CLR_AUTO_EVENT NULL NULL NULL NULL NULL

Все тож самое
5 июл 11, 00:03    [10921381]     Ответить | Цитировать Сообщить модератору
 Re: Рекурсивный вызов и lock  [new]
khourshed
Member

Откуда:
Сообщений: 93
Леша777,

Поменял поля местами ..... стало работать ......
Посмотрим надолго ли ....... в предыдущий раз тоже "отвисало" внезапно .....
5 июл 11, 00:07    [10921395]     Ответить | Цитировать Сообщить модератору
 Re: Рекурсивный вызов и lock  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31958
khourshed,

select @@version скажите
5 июл 11, 00:21    [10921433]     Ответить | Цитировать Сообщить модератору
 Re: Рекурсивный вызов и lock  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31958
alexeyvg,

А вообще интересная у вас база. Кластерные индексы на гуидах, рекурсивные процедуры...
5 июл 11, 00:23    [10921438]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить