|
1
8
一种策略是将只读文件组添加到数据库中,并将只读表放在其中。readonly文件组允许SQL Server进行一些优化,包括消除所有锁。 除了标准数据库优化之外:
|
|
|
2
7
在数据库中:
在程序中:
|
|
|
3
5
如果它是只读的,那么您可以做的一件事就是将索引放在任何可能有帮助的地方(空间允许)。通常,添加索引是写操作的性能影响和读操作的性能提高之间的权衡。如果你不写,这就不再是一种折衷了。 加载数据库时,您需要删除所有/大部分索引,执行加载,然后将索引放回表中。 |
|
|
4
5
我不知道你认为什么是“正常规则”,但这里有一些建议。
|
|
|
5
4
|
|
|
6
4
对于只读表,考虑将索引更改为使用100%的填充因子。 这将增加每个数据页上的数据量。每页数据越多,要读取的页越少,I/O越少,因此性能越好。 我喜欢这个选项,因为它可以在不更改代码或表的情况下提高性能。 |
|
|
7
2
对于性能优化,您可以做几件事。非标准化工作。适当的聚集索引取决于如何查询数据。我不建议使用nolock提示。我会使用快照隔离级别。 数据库在磁盘上的布局也很重要。对于只读性能,我建议使用Raid 10,将单独的mdf和ldf连接到单独的磁盘轴。通常,对于生产数据库,数据应该是Raid 5,日志应该是Raid 1。确保每个cpu都有一个tempdb文件,用于排序,良好的起始大小是5gb数据,每个cpu有1gb日志。还要确保通过showplan运行查询或过程以尽可能帮助优化它们。确保在服务器设置中启用并行性。 另外,如果您有时间和空间来获得最佳性能,我将精确地映射数据在磁盘上的位置,创建文件组并将它们放在每个卷中都是独立磁盘的完全独立的卷上。 |
|
John D · 需要为NULL或NOT NULL的WHERE子句 1 年前 |
|
Marc Guillot · 记录值时忽略冲突 1 年前 |
|
|
Fachry Dzaky · 正确使用ROW_NUMBER 1 年前 |
|
|
TriumphTruth · 从满足特定条件的数据集中选择1行 1 年前 |