【问题标题】:SQL Server database optimization for large database大型数据库的 SQL Server 数据库优化
【发布时间】:2011-02-28 14:48:23
【问题描述】:

我正在开发一个包含大量数据的网站,这些数据要存储在 SQL Server 数据库中。我应该如何优化它以使其更快。 1.使用存储过程。 2. 功能/视图。 3.其他方法

【问题讨论】:

  • 在 Gb 中对您来说有多大?

标签: c# asp.net sql-server optimization


【解决方案1】:

嗯,最重要的是在存储大量数据的表上使用适当的indexes

您也可以考虑使用partitioned tables

使用 SP 或视图不会使您的数据库更快。

【讨论】:

    【解决方案2】:

    当然还有其他方法 1)优化表结构(如果可能) 2)优化索引结构(复杂索引,包含字段) 3)分区(如果服务器的几个物理磁盘) 4)SQL数据压缩(仅限企业版)

    【讨论】:

      【解决方案3】:

      在数据库调优中最重要的是要知道如何使用数据。

      索引可以为提高数据检索速度创造奇迹。但是过度索引会在写入数据时造成巨大的性能瓶颈。 (在写入数据时需要更新索引。在最坏的情况下,这会使您的写入时间比没有索引时的写入时间长几倍。)

      视图也是如此。如果数据在很大程度上是只读的,那么一个好的索引视图对于性能和可管理性来说可能是一件好事。但是他们真的可以在写作时拖累数据库。

      分区可能很关键。如果您的数据存储在具有大量主轴的优质存储介质上,您可以对数据进行分区,以便将引用最多的数据分布在不同的主轴上。这样一来,当多个请求在一个驱动器上排队时,您就不会让读磁头处于空闲状态。

      根据您的数据访问需求,设置多个数据库也是一种流行的策略,只能写入其中一个。其他都是只读副本。这样,您可以以几乎实时的方式(如果可以接受的话)查询和分析数据,并将负载分散到服务器上。

      最后,查询调优非常重要。您可以使用 SQL Server 附带的工具来帮助调整您的查询。通常,您甚至不需要索引来大幅提高读取性能。您只需要更改查询以避免不必要的列(例如,可能会排除现有索引)或不必要的连接、子查询等。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-12-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-03-02
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多