高并发访问的SQL Server性能

时间:2018-03-26 00:55:54

标签: c# sql-server executereader

由C#开发并基于SQL Server的一项获胜服务。

我创建了SqlConnection,然后执行了ExecuteReader,但是当并发访问率很高时,我遇到了问题。

在我的本地计算机上,代码如下,一次执行的平均值为1.2秒。 MyObject表有40列和400'000行。

for (int i = 0; i < 500; i++)
{
    Task.Factory.StartNew(() =>
                {
                    Stopwatch sw = new Stopwatch();
                    sw.Start();

                    var serialNumber = "55292572";
                    var orderIdArr = ORM.GetObjecys<MyObject>(t =>t.PrimaryId== Id).ToList();//Only Open connection, do SqlCommandExecute, close connection here
                    //sw.Stop();
                    Console.WriteLine(sw.ElapsedMilliseconds);
                });
}

我将此服务部署到2 win服务器。您可以猜测我有500个客户,他们经常访问此服务。

在线环境,一次执行将花费10秒。

所以我不知道为什么会出现这种低性能?在我的本地机器上,它只需要1.2秒。

有人可以给我一些答案或给我一些可以改进的建议吗?

非常感谢!

enter image description here

0 个答案:

没有答案