【发布时间】:2011-02-28 14:48:23
【问题描述】:
我正在开发一个包含大量数据的网站,这些数据要存储在 SQL Server 数据库中。我应该如何优化它以使其更快。 1.使用存储过程。 2. 功能/视图。 3.其他方法
【问题讨论】:
-
在 Gb 中对您来说有多大?
标签: c# asp.net sql-server optimization
我正在开发一个包含大量数据的网站,这些数据要存储在 SQL Server 数据库中。我应该如何优化它以使其更快。 1.使用存储过程。 2. 功能/视图。 3.其他方法
【问题讨论】:
标签: c# asp.net sql-server optimization
【讨论】:
当然还有其他方法 1)优化表结构(如果可能) 2)优化索引结构(复杂索引,包含字段) 3)分区(如果服务器的几个物理磁盘) 4)SQL数据压缩(仅限企业版)
【讨论】:
在数据库调优中最重要的是要知道如何使用数据。
索引可以为提高数据检索速度创造奇迹。但是过度索引会在写入数据时造成巨大的性能瓶颈。 (在写入数据时需要更新索引。在最坏的情况下,这会使您的写入时间比没有索引时的写入时间长几倍。)
视图也是如此。如果数据在很大程度上是只读的,那么一个好的索引视图对于性能和可管理性来说可能是一件好事。但是他们真的可以在写作时拖累数据库。
分区可能很关键。如果您的数据存储在具有大量主轴的优质存储介质上,您可以对数据进行分区,以便将引用最多的数据分布在不同的主轴上。这样一来,当多个请求在一个驱动器上排队时,您就不会让读磁头处于空闲状态。
根据您的数据访问需求,设置多个数据库也是一种流行的策略,只能写入其中一个。其他都是只读副本。这样,您可以以几乎实时的方式(如果可以接受的话)查询和分析数据,并将负载分散到服务器上。
最后,查询调优非常重要。您可以使用 SQL Server 附带的工具来帮助调整您的查询。通常,您甚至不需要索引来大幅提高读取性能。您只需要更改查询以避免不必要的列(例如,可能会排除现有索引)或不必要的连接、子查询等。
【讨论】: