Hi.
I have inserted the datetime for test(dtm) and I do not get a cluster seek with the following query:
Select bookingNumber
from EOrderReminderConsent
where ShowTime <= DATEADD(MINUTE, 145, GETDATE())
and dtm >= '20180113' or dtm is null
Can this happen if the data is a few lines and there is no need for index paging? In my case the test env had 82 lines
Here are the table and indexes:
Table:
CREATE TABLE [dbo].[EOrderReminderConsent](
[Id] [int] IDENTITY(1,1) NOT NULL,
[BookingId] [nvarchar](50) NOT NULL,
[BookingNumber] [int] NOT NULL CONSTRAINT [DF_EOrderReminderConsent_BookingNumber] DEFAULT ((0)),
[ShowTime] [datetime] NOT NULL,
[Email] [nvarchar](150) NOT NULL,
[EmailSend] [bit] NOT NULL CONSTRAINT [DF_EOrderReminderConsent_EmailSend] DEFAULT ((0)),
[RetryStatus] [smallint] NULL CONSTRAINT [DF_EOrderReminderConsent_RetryStatus] DEFAULT ((0)),
[dtm] [datetime] NULL,
CONSTRAINT [PK_EOrderReminderConsent] PRIMARY KEY NONCLUSTERED
(
[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]
Indexes:
CREATE UNIQUE CLUSTERED INDEX [CL_EOrderReminderConsent] ON [dbo].[EOrderReminderConsent]
(
[ShowTime] ASC,
[Id] 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]
---
CREATE NONCLUSTERED INDEX [NCL_BookingNumber] ON [dbo].[EOrderReminderConsent]
(
[BookingNumber] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
---
ALTER TABLE [dbo].[EOrderReminderConsent] ADD CONSTRAINT [PK_EOrderReminderConsent] PRIMARY KEY NONCLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
--- The test dtm index
CREATE NONCLUSTERED INDEX [dtmNonClusteredIndex-20180315-110758] ON [dbo].[EOrderReminderConsent]
(
[dtm] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]