gpt4 book ai didi

c# - 具有 20 行的简单 Dapper 选择查询(大多数列为 nvarchar(max))耗时太长 - 15 秒或更多

转载 作者:行者123 更新时间:2023-11-30 21:49:49 26 4
gpt4 key购买 nike

下面给出了我的精巧代码和一个选择查询:

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

当我在 SQL Server Management Studio 中运行此选择查询时,它会在 0 毫秒内返回。但是来自 dapper 的相同查询(上面的代码)花费的时间太长。

有什么想法吗?这是因为 nvarchar(max) 吗?

如果我清除 nvarchar(max) 字段中的数据,它会非常快速地返回数据。

最佳答案

您正在尝试为每条记录从数据库中提取 600+Kb。 20 行使得每个查询 至少 将近 6Mb。

它在 SQL Server Management Studio 中运行速度很快的原因是它实际上并没有返回完整的列,它只返回前 X 个字符,所以没有处理所有 6+MB。当您运行代码(在本例中为 dapper)时,将返回所有 6+MB。

如果您正在将文件存储在数据库中,则需要停止这样做并将它们存储在文件系统中,并使用数据库来存储文件的位置和元数据。

关于c# - 具有 20 行的简单 Dapper 选择查询(大多数列为 nvarchar(max))耗时太长 - 15 秒或更多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36745883/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com