Ниже приведен скрипт таблицы. Доступ к данным из этой таблицы слишком медленный.
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Emails](
[id] [int] IDENTITY(1,1) NOT NULL,
[datecreated] [datetime] NULL CONSTRAINT [DF_Emails_datecreated]
DEFAULT (getdate()),
[UID] [nvarchar](250) COLLATE Latin1_General_CI_AS NULL,
[From] [nvarchar](100) COLLATE Latin1_General_CI_AS NULL,
[To] [nvarchar](100) COLLATE Latin1_General_CI_AS NULL,
[Subject] [nvarchar](max) COLLATE Latin1_General_CI_AS NULL,
[Body] [nvarchar](max) COLLATE Latin1_General_CI_AS NULL,
[HTML] [nvarchar](max) COLLATE Latin1_General_CI_AS NULL,
[AttachmentCount] [int] NULL,
[Dated] [datetime] NULL
) ON [PRIMARY]
Следующий запрос занимает 50 секунд для извлечения данных.
select id, datecreated, UID, [From], [To], Subject, AttachmentCount,
Dated from emails
Если я включу Тело и HTML в выборку, то время будет хуже.
индексы включены:
- идентификатор уникального кластера
- Из Не уникальных не кластеризованных
- Для не уникальных не кластеризованных
В настоящее время в Tabls имеется 180000+ записей.
Может быть 100 000 записей в месяц, поэтому с течением времени это замедлится.
Решит ли проблема разделение данных на две таблицы?
Какие еще индексы должны быть там?