我有一个名为table1
的源表,每晚都会使用新数据填充。我必须在4个关系表tblCus, tblstore, tblEmp, tblExp
中上传数据。我应该使用存储过程或触发器来实现吗?
谢谢
答案 0 :(得分:0)
在SQL Server中,总是有多种方法可以对猫进行换肤。根据您的问题,我假设您正在将OLTP样式数据库中的4个表异常化为数据仓库样式应用程序中的单个维度。
如果数据库位于不同的实例上,或者只需要简单的转换,则可以使用SSIS(SQL Server Integration Services)。
如果这是正确的,并且数据库驻留在同一个实例上,那么您可以使用存储过程。
如果转换是较大负载的一部分,那么您可以组合这两种方法,并使用SSIS来协调转换,但只需在控制流中调用存储过程。
我使用的一般规则,决定是否应该使用数据流或存储过程进行特定转换:数据流是我的预设,但如果我需要在数据流中进行任何异步转换,我恢复到存储过程。这个通用规则USUALLY提供了最佳的性能配置文件。
我会避免触发器,特别是如果对4个表进行大量DML操作,因为触发器将针对每个修改触发,并可能导致性能下降。
答案 1 :(得分:0)