代码之家  ›  专栏  ›  技术社区  ›  cweston Given

SQL Server复制数据库后减速

  •  2
  • cweston Given  · 技术社区  · 15 年前

    由于数据库变得相当大,我最近将一组表从现有数据库移到了一个新数据库中。这样做之后,我注意到在针对新数据库运行时,查询的性能显著下降。

    重新创建新数据库的过程如下:

    1. 使用SQL Server自动脚本生成表创建脚本
      发电机。
    2. 运行创建表脚本
    3. 将所有数据插入新数据库 使用“插入到”和“选择范围” 现有数据库。
    4. 运行所有要创建的alter脚本 外键和任何索引

    是否有人对我的流程可能出现的问题有任何想法,或者我遗漏的导致性能问题的关键步骤有任何想法?

    谢谢。

    5 回复  |  直到 15 年前
        1
  •  4
  •   George Mastros    15 年前

    您是否编写了原始数据库中表的索引脚本?缺少索引肯定会导致性能不佳。

        2
  •  5
  •   SQLMenace    15 年前

    首先我要做一个含羞草确保 自动创建统计信息 已启用,您也可以设置 自动更新统计信息 成真

    之后我会通过跑步来更新数据

    sp_updatestats
    

    UPDATE STATISTICS
    

    同时也要意识到,第一次点击查询时,速度会变慢,因为RAM中不会缓存任何内容。第二次击中应该快得多

        3
  •  3
  •   Chris W    15 年前

    在运行这些查询时,您是否尝试查看了每台服务器上的执行计划——这应该可以让您轻松地看到它们是否在执行不同的操作,例如,由于索引丢失、统计数据不佳等原因而导致的表扫描。

    两个DBS是否都在同一个设备上,数据文件在同一个驱动器阵列上?

        4
  •  2
  •   Remus Rusanu    15 年前

    你能告诉我 什么 关于这些问题进展缓慢?新的访问计划?相同的计划,但执行速度较慢?他们这样做吗 执行 慢一点还是 暂停的 更多?做 全部的 查询速度变慢了还是只是一些?最后也是最重要的, 你怎么知道的 也就是说,你到底测量了什么,如何测量?

    一些常见的嫌疑犯可能是:

    • 新存储速度慢得多(慢磁盘或忙磁盘上为.mdf)
    • 您在移动过程中更改了数据结构(即某些索引未被移植)
    • 您更改了数据大小(即压缩选项),导致同一数据有更多页面
    • 还有什么变化,同时,新的应用程序代码或类似的吗?
    • 通过扩展数据大小 删除 旧表)您现在正在破坏缓冲池(性能计数器中的页面预期寿命缩短了吗?)
        5
  •  0
  •   Otávio Décio    15 年前

    看看如何设置初始大小和增长选项。如果您没有给它足够的空间来开始,或者如果您一次增长1 MB,这可能是性能问题的原因。