由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秒。
有人可以给我一些答案或给我一些可以改进的建议吗?
非常感谢!