2011-09-21 86 views
0

我有一个数据库(sql server 2005),现在表中有大约100000条记录叫做用户,当我做查询时使用linq来sql,它是非常慢和较慢的。做一些操作来提高速度?如何减少数据库的压力

+1

向我们展示SQL查询和表结构(至少是索引)。 –

回答

1

你可以(按优先顺序排列)

  • 保存查询作为存储过程
  • 添加索引到你的用户 表中,您要查询什么/划分为
  • 分析您查询 (如果它很复杂),看看是否有一个资源密集型方法 这样做。有图形查询分析器可以帮助您。
  • 作为最后的手段,不使用LINQ,而使用ADO.NET实体框架,它显着更快。但是你只会看到疯狂的东西的性能改进,只有你已经完成了上述所有。
+0

事实上,除非您的查询简单(从用户中选择*),否则应始终执行前两项操作。在这种情况下,存储过程可能不会起作用,但是您应该几乎总是向要搜索的字段添加索引,只要它们包含大部分不同的非空值。 (如果有很多重复项,请进行测试,因为索引实际上可能会变慢)。 – Dave

2

分析您的查询并添加一些索引到您的表可能会有所帮助。

要想得到一个较为明确的答案后更具体的信息,(你有表stucture,索引,SQL代码L2S生成,...)

0

使用存储过程,然后使用LINQ to SQL中,以获得所需的行,这会给表演。

0

在您的处置分析你的数据库访问,看到需要优化什么是最好的工具是:

第一个可以让你查看从您的应用程序发送到您的数据库的确切查询,如果您的应用程序比您想象的更加烦琐,这将特别有用。第二个将允许你采取这些查询,并确切地看到SQL服务器正在与他们做什么。

在图形执行计划中,查找使用大量CPU和传输大量记录的路径的步骤。这些是你想要优化的。这可能是因为你正在某处进行表扫描,这可能比较缓慢,或者可能会加入比你需要的更多的记录,这很慢。等等。