Мой щеголеватый код приведен ниже с запросом на выборку:Простой щеголеватый запрос на выборку с 20 строками (большинство из столбцов NVARCHAR (макс)) занимает слишком длительный 15 секунд и более
const string Sql = @"SELECT [id]
,[groupName]
,[reqCap]
,[impCap]
,[player]
,[resumeDate]
,[whitelist]
,[blacklist]
,[Macros]
FROM [VideoServer].[dbo].[TagGroup]";
return await dc.Connection.QueryAsync<TagGroup>(Sql);
Мой дизайн стола является ниже:
[id] [int] IDENTITY(1,1) NOT NULL,
[groupName] [varchar](500) NOT NULL,
[reqCap] [int] NULL CONSTRAINT [DF_TagGroup_reqCap] DEFAULT ((0)),
[impCap] [int] NULL CONSTRAINT [DF_TagGroup_impCap] DEFAULT ((0)),
[player] [varchar](500) NULL,
[resumeDate] [date] NULL,
[whitelist] [nvarchar](max) NULL,
[blacklist] [nvarchar](max) NULL,
[Macros] [nvarchar](max) NULL
Когда я запускаю этот запрос select в SQL Server Management Studio, он возвращается в пределах 0 миллисекунд. Но тот же запрос от dapper (выше кода) занимает слишком много времени.
Любые идеи? Это из-за nvarchar(max)
?
Если я очищаю данные в полях nvarchar(max)
, это возвращает данные очень быстро.
Сколько данных в полях 'nvarchar (max)'? индексирование не выполняется на поля 'nvarchar (max)', поэтому это может быть одной из причин. Кроме того, максимальные поля хранятся по-разному для полей без макс. – user1666620
200 КБ и более в каждом столбце nvarchar (max) –
нет предложения WHERE, поэтому индекс здесь не может помочь –