Re[3]: MSSQL - переменные в WHERE
От: amalakhov  
Дата: 12.05.10 10:12
Оценка:
Здравствуйте, skorpk, Вы писали:
S>Надо посмотреть план выполнения и структуру таблицы хорошо бы увидеть.
S>Да и глянуть что делается в данный момент а Activity Monitor

Структуры:
CREATE TABLE [dbo].[Frames](
    [id] [bigint] IDENTITY(1,1) NOT NULL,
    [UTC_time] [datetime] NOT NULL,
    [GoodToMap] [tinyint] NOT NULL CONSTRAINT [DF_Frames_GoodToMap]  DEFAULT (0),
 CONSTRAINT [PK_Frames] PRIMARY KEY CLUSTERED 
(
    [id] ASC
) ON [PRIMARY]
) ON [PRIMARY]

CREATE TABLE [dbo].[Science_data](
    [id] [bigint] NOT NULL,
    [SC2] [binary](32) NOT NULL,
 CONSTRAINT [PK_Science_data] PRIMARY KEY CLUSTERED 
(
    [id] ASC
) ON [PRIMARY]
) ON [PRIMARY]

ALTER TABLE [dbo].[Science_data]  WITH NOCHECK ADD  CONSTRAINT [FK_Science_data_Frames] FOREIGN KEY([id])
REFERENCES [dbo].[Frames] ([id])
GO
ALTER TABLE [dbo].[Science_data] CHECK CONSTRAINT [FK_Science_data_Frames]


План выполнения — действительно сильно разные — но тут я немножко профан и не до конца могу понимать смысла нарисованного. Если подскажете, возможно ли заставить сервер выполнять 2й запрос так же как 1й, кажется это решит проблемы.


По поводу Activity Monitor — во время выполнения 2го запроса там очень много жизни, но опять же — не до конца понимаю, на что именно обращать внимание (какие столбцы имеет смысл сюда приводить). Наш процесс — 60й.


PS. Пока пост писал — 2й вариант запроса таки выполнился, заняло 8 минут (против 1 секунды)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.