powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Подскажите с планом пожалуйста
7 сообщений из 7, страница 1 из 1
Подскажите с планом пожалуйста
    #39760199
Sandist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Microsoft SQL Server 2008 R2 (SP3) - 10.50.6000.34 (X64) Aug 19 2014 12:21:34 Copyright (c) Microsoft Corporation Enterprise Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1) (Hypervisor)

Есть таблица
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
CREATE TABLE [dbo].[Inv_Stat](
	[ID] [int] IDENTITY(-2147483648,1) NOT NULL,
	[date_add] [datetime] NOT NULL,
	[date_inv] [datetime] NULL,
	[CashierID] [int] NULL,
	[ShopNo] [int] NULL,
	[id_vikl] [int] NULL,
	[cnMust] [int] NULL,
	[cnGo] [int] NULL,
	[cnNot] [int] NULL,
 CONSTRAINT [PK_Inv_Stat] PRIMARY KEY CLUSTERED 
(
	[ID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

GO
ALTER TABLE [dbo].[Inv_Stat] ADD  CONSTRAINT [DF_Inv_Stat_date_add]  DEFAULT (getdate()) FOR [date_add]
GO



есть индекс на ней
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
CREATE NONCLUSTERED INDEX [IX_for_Rep_347] ON [dbo].[Inv_Stat] 
(
	[date_inv] ASC,
	[cnGo] ASC
)
INCLUDE ( [ShopNo],
[id_vikl]) 
WHERE ([cnGo]=(0))
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



выполняю запрос:
Код: sql
1.
2.
3.
4.
select ShopNo, id_vikl
from Inv_Stat(nolock) i
where date_inv between CONVERT(date,getdate()) and DATEADD(day,1,convert(date,getdate()))
  and cnGo = 0 



получаю план, в котором есть Constant Scan
подскажите пожалуйста кто знает почему так, и можно ли избежать?
...
Рейтинг: 0 / 0
Подскажите с планом пожалуйста
    #39760208
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sandist,

Вас слово SCAN пугает? Или что тут плохого?
...
Рейтинг: 0 / 0
Подскажите с планом пожалуйста
    #39760210
Sandist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaK,
я не понимаю почему эти действия там должны быть? из-за фильтра на индексе? это нормально?
...
Рейтинг: 0 / 0
Подскажите с планом пожалуйста
    #39760211
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SandistTaPaK,
я не понимаю почему эти действия там должны быть? из-за фильтра на индексе? это нормально?
ну как-то ж надо посчитать

Код: sql
1.
CONVERT(date,getdate()) and DATEADD(day,1,convert(date,getdate()))
...
Рейтинг: 0 / 0
Подскажите с планом пожалуйста
    #39760218
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у вас там несовподение типов
datetime вместо date это вычисление уйдёт
...
Рейтинг: 0 / 0
Подскажите с планом пожалуйста
    #39760219
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaKу вас там несовподение типов
datetime вместо date это вычисление уйдёт
точнее если в date то как-то так
Код: sql
1.
 between CAST(CONVERT(date,getdate())  as datetime) and CAST(DATEADD(day,1,convert(date,getdate())) as datetime)
...
Рейтинг: 0 / 0
Подскажите с планом пожалуйста
    #39760225
Sandist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaK,
Блин, совсем не подумал про это
спасибо большое, мне это очень помогло
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Подскажите с планом пожалуйста
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]