代码之家  ›  专栏  ›  技术社区  ›  marc_s MisterSmith

包含大量表的SQL Server数据库

  •  2
  • marc_s MisterSmith  · 技术社区  · 16 年前

    我被要求对SQL Server 2005数据库中的性能问题进行故障排除。

    挑战不在于大量的数据,而在于大量的表。单个数据库中有30000多个表。总数据大小约为650 GB。

    你是如何开始检查性能问题的?你在VLDB(Very Large DB)上找到的所有文章都是关于数据量的,而不是表的数量。

    有什么想法吗?指针?提示?

    4 回复  |  直到 16 年前
        1
  •  6
  •   John Saunders    16 年前

    相反,问用户“什么是慢的”?即使您测量了性能(也许使用Profiler),您的数字也可能与感知到的性能问题不匹配。

        2
  •  3
  •   JohnFx    16 年前

    正如其他人所指出的那样,表的数量可能表明设计不佳,但它远非性能问题的根源。

    对于任何性能优化,我能给你的最佳建议是 最重要的是, 在确定问题的根源之前,不要开始优化 .

    我会从 运行一些痕迹

        3
  •  0
  •   Community Mohan Dere    8 年前

    目前

    如果您确实有性能问题:

    1) 检查碎片( dbcc showcontig )

    2) 检查硬件规格、RAID/驱动器/文件位置。检查SQL server错误日志。 工具)

    3) 在正常查询工作负载期间收集跟踪数据,并识别昂贵的查询(请参阅以下SO答案: How Can I Log and Find the Most Expensive Queries? )

        4
  •  -1
  •   Andy Jones    16 年前

    软件是否创建了所有这些表?如果是这样,也许同样的错误会一遍又一遍地重复。所有表都有主键吗?它们都有聚集索引吗?是否存在所有必要的非聚集索引(用于筛选和连接的列)等。

    升级SQL Server 2008是一种选择吗?如果是这样,你可以利用新的 Policy Based Management 该功能为如此大量的表强制实施最佳实践。

    推荐文章