gpt4 book ai didi

c# - 尽管最大池大小设置为 1000000,但 SQL 超时异常

转载 作者:太空宇宙 更新时间:2023-11-03 10:55:49 25 4
gpt4 key购买 nike

我正在处理一个 asp.net MVC4 项目并使用 SQL Server 2008。我的数据库表包含 100000 行。此外,连接字符串属性的最大池大小设置为 1000000,池化设置为 true。

我的表结构如下:

CREATE TABLE tblNews
(
ID int IDENTITY(1,1) NOT NULL,
Url nvarchar(300) UNIQUE NOT NULL,
PubDate datetime NOT NULL,
Active bit NOT NULL,
Hit int NOT NULL,
...
)

并且有一个索引如下:

CREATE NONCLUSTERED INDEX indexTblNews_Url
ON tblNews(Url)

我的选择查询是:

CREATE PROC spNewsGet
@Url nvarchar(300)
AS
UPDATE tblNews
SET Hit = Hit + 1
WHERE Url = @Url
AND PubDate > GETDATE()
AND Active = 1;

SELECT
*
FROM tblNews
WHERE Url = @Url
AND PubDate > GETDATE()
AND Active = 1
ORDER BY PubDate DESC

在低评级网站上没有问题,而且效果很好。但是在 100000 行这样大的数据库和每天有 2000000 个单个用户的网站中,它崩溃了。它在三个页面之一抛出 SqlTimeout 异常。因此,当我单击一个页面时,几乎所有页面都会出现上述异常。

我检查了硬件性能,处理器消耗为 I7 3.6 GHZ 的 %70,内存消耗为 1.5 GB。但是有更多的空内存。我该如何克服这个问题?

任何帮助将不胜感激。

最佳答案

您很可能正在使用 SqlConnection。尝试设置 ConnectionTimeout连接到 0 的属性以指示无限超时。如果您没有使用 SqlConnection,您可能有一个可以设置的类似属性。

关于c# - 尽管最大池大小设置为 1000000,但 SQL 超时异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19545497/

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