Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net SQL Server性能和查询执行_Asp.net_Sql_Sql Server_Sql Server 2008_Sql Server 2008 R2 - Fatal编程技术网

Asp.net SQL Server性能和查询执行

Asp.net SQL Server性能和查询执行,asp.net,sql,sql-server,sql-server-2008,sql-server-2008-r2,Asp.net,Sql,Sql Server,Sql Server 2008,Sql Server 2008 R2,几天前,这是一段艰难的时光 我已经为大学生开发了一个网上录取流程的应用程序,非常成功 让我来谈谈我面临的问题 该问题涉及两个表:Student_AdmissionDetails(包含近30-35个字段,其中大多数字段的数据类型为nvarchar(70)),另一个是StudentCategory 从入学程序开始的几天后,学生的录取细节有大约30万条记录,学生类别有4条记录 我已经开发了一个仪表板,我想在其中显示每个类别中没有申请的学生。为了实现这一点,我提出了以下问题 选择计数(*) 来自学生入学

几天前,这是一段艰难的时光

我已经为大学生开发了一个网上录取流程的应用程序,非常成功

让我来谈谈我面临的问题

  • 该问题涉及两个表:Student_AdmissionDetails(包含近30-35个字段,其中大多数字段的数据类型为nvarchar(70)),另一个是StudentCategory
  • 从入学程序开始的几天后,学生的录取细节有大约30万条记录,学生类别有4条记录
  • 我已经开发了一个仪表板,我想在其中显示每个类别中没有申请的学生。为了实现这一点,我提出了以下问题

    选择计数(*)

    来自学生入学详细信息

    内部连接学生类别

    关于学生的录取详情。Id=StudentCategory.Id

    其中CategoryTypeName=@ParameterValue

  • 上述查询在单个页面上被激发3次。有250-300名用户同时访问同一页面。除了入学表上的用户,还有1300-2000名学生同时填写表格

    我遇到的问题是,当我在sql server中运行上述查询时,它五次中有一次被触发从内存访问对象时发生死锁,这会引发错误(请原谅我没有记住确切的错误)

    我在以下帖子中寻找的是:

    • 这一次我有点幸运,因为我的编码没有让别人不高兴,但有人能告诉我如何克服这种情况吗。处理大型数据库的最佳方法是什么
    • 我试图用SQL profiler解决这个问题,但由于还有5个应用程序运行类似的程序,我无法确定有多少用户试图访问相同的资源
    我想以下几点将有助于回答我的问题

    • 应用服务器和数据库服务器不同
    • DB服务器是在WindowsXP上运行的(我猜!),它的RAM是128GB
    • 当我从SQL Server执行查询时,执行查询平均需要12-15秒

    很抱歉写这么长,但我真的需要帮助来学习:)

    尝试更新您的
    SELECT
    语句,添加
    和(NOLOCK)
    。这将使您的结果不那么精确,但似乎对于您的仪表板来说已经足够了


    <> >在<<代码> < <代码> > < /p>中,最好使用整数[<代码>类别yType ID >代码> > <代码> < /p> >如果你需要这个代码>计数>代码>,你可以考虑使用索引代码>代码>按CategoryTypeName分组以预先计算计数。您最好还是为包含索引的表创建表。是的。我不是SQL管理团队的成员,但他们要求我解决问题,但我无法解决。但是,是的,谢谢您的回复。我检查了你发布的链接,它只给出死锁图。但是如何解决这个问题呢