Jas*_*son 10 t-sql sql-server reporting denormalization
刷新准备好的报告表大约需要5-10分钟.我们希望不断更新此表(可能每15分钟或连续一次).
我们非常频繁地查询此报告表(每分钟多次),并且我无法在任何时间内保持这种状态.如果数据是15分钟就可以了.
我不能放弃桌子并重新创建它.我无法删除表的内容并重新创建它.
有没有我应该使用的技术,比如在两个表之间交换(在我们构建另一个表时从一个表读取)或者我将这个5-10分钟的过程放在一个大型事务中?
gbn*_*gbn 13
用同义词?.在创作时,这指向tableA.
CREATE SYNONYM ReportingTable FOR dbo.tableA;
Run Code Online (Sandbox Code Playgroud)
15分钟后,您创建tableB并重新定义同义词
DROP SYNONYM ReportingTable;
CREATE SYNONYM ReportingTable FOR dbo.tableB;
Run Code Online (Sandbox Code Playgroud)
同义词只是指向实际表的指针:这样,实际表重命名等的处理被简化并抽象出来,所有代码/客户端都会使用 ReportingTable
编辑,2011年11月24日
所有版本都提供同义词:分区切换仅限Enterprise/Developer.
编辑,2012年2月
您可以在标准版中切换整个表格(可能是Express,未经测试)
ALTER TABLE .. SWITCH ..
Run Code Online (Sandbox Code Playgroud)
如果目标表为空,这将比同义词更优雅.
编辑,2012年2月(2)
此外,您可以根据SQL Server中的Caching连接表通过模式进行旋转
归档时间: |
|
查看次数: |
1700 次 |
最近记录: |