我正在处理后端使用 SQL Server Express (2014) 的 Windows 应用程序的性能问题。
我主要是通过查看索引 SQL Server 端来设法使这个运行得更好,但是有一个特定的报告仍然运行得很慢。
查看它在做什么,它似乎在应用程序中循环并SELECT *
针对一张表查询出数千个非常简单的查询WHERE = Primary Key
,因此在每种情况下只检索一条记录。当我说 IDENTICAL 时,我的意思是相同的,它甚至没有改变主键来获取不同的东西,它显然每次需要时都从数据库中请求完全相同的记录,仅在几次中最多一百次秒。
这是一个示例报告,当服务器安静时,它需要大约 10-15 秒才能运行 - 查询运行了多少次我已添加为注释:
SELECT * FROM "Patient" WHERE "_Recno" = 35051 -- (runs 106 times)
SELECT * FROM "Client" WHERE "_Recno" = 15607 -- (99 times)
SELECT * FROM "SpeciesEntry" WHERE "_Recno" = 180 -- (97)
SELECT * FROM "Table" WHERE "_Recno" = 9 -- (97)
SELECT * FROM "DefaultEntry" WHERE "_Recno" = 2615 -- …
Run Code Online (Sandbox Code Playgroud)