Mar*_*son 11 performance sql-server ssis sql-server-2008-r2
我已经编写了一个 SSIS 包来将测试数据加载到一个空数据库中。有些表非常大(约 7 亿行)。SSIS 包完成后,是否应该运行任何命令(作为 DBA 学徒!)以最大化数据库的性能?
例如,我执行了EXEC sp_updatestats
但它报告没有索引需要更新。
一旦加载了大量数据,是否有一系列要做的事情,或者 SQL Server 2008 是否会为您处理所有这些事情?
如果您要加载到空数据库,则可以/应该采取措施避免在加载后需要任何额外的维护步骤。碎片化是敌人,这就是你想要避免的。
我不会复制和粘贴,而是将您指向 ETL 优化的非常全面的参考列表@Marian 放在一起回答我在 BCP 上提出的问题。其中许多将同样适用于您的场景。
这取决于您拥有多少窗口,但通常更新统计信息和重建/重组索引是一个很好的步骤。除此之外,您真的不需要做任何其他事情。
统计信息告诉查询优化器有多少行可能受到操作的影响,进而告诉 SQL 采取哪种方法来运行您的查询。插入数据可能会扭曲分布,如果您没有插入足够多的行来触发自动更新模式下的统计信息更新,手动操作应该会有所帮助。如果你有窗口,我说保留统计更新部分。
随着数据的添加,索引可能会变得碎片化。重建或重组有助于减少这种情况,从而提高实际访问数据时的性能。