【发布时间】:2010-10-12 14:29:44
【问题描述】:
我目前正面临一个性能问题(它可能会导致稍后出现扩展问题)。我正在处理的应用程序非常复杂,它在 SQL Server 2005 上运行。我需要连接 6 - 7 个表来获取所需的数据。到目前为止,每个表都包含超过 100,000 行数据。无法更改数据库架构(必须保持原样)。所以我只能尽量优化。我想到了两件事:
-
尽量不要加入数据库,让应用服务器使用LINQ进行过滤:
- 优点:可以通过添加更多应用服务器轻松扩展。
- 缺点:更加努力;我不确定响应能力是否会降低。
-
应用服务器保持原样并尽可能优化 SQL 查询(更多索引、频繁重建索引等):
- 优点:省力
- 缺点:当表记录变大时,问题会再次出现
目前缓存基本上不是我的解决方案(硬件问题、托管问题等),这就是我最初没有提出它的原因。但我确实知道缓存会给我带来什么好处,并且已经使用过很多次了。
【问题讨论】:
-
6 - 100,000 行上的 7 个连接并不大...
标签: database performance join scaling