Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Подскажите с планом пожалуйста / 7 сообщений из 7, страница 1 из 1
16.01.2019, 12:03
    #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
16.01.2019, 12:17
    #39760208
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите с планом пожалуйста
Sandist,

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

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


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