2
我正在寻求提高生产数据库中某个进程的性能。我们有两组SP,这些SP通过存储在配置表中的配置设置。程序建议
的示例语法是:
Declare @SWITCH BIT
IF @SWITCH = 1
INSERT INTO DEST_TABLE_A
SELECT VALUES
FROM SOURCE_TABLE
IF @SWITCH = 2
INSERT INTO DEST_TABLE_B
SELECT VALUES
FROM SOURCE_TABLE
难道是更好的做法,在这种情况下的IF逻辑移动到WHERE子句来创建一个标准化的而不是内它有条件的逻辑是什么?
E.g.
INSERT INTO DEST_TABLE_A
SELECT VALUES
FROM SOURCE_TABLE
WHERE @SWITCH = 1
INSERT INTO DEST_TABLE_B
SELECT VALUES
FROM SOURCE_TABLE
WHERE @SWITCH = 2
我很欣赏这可能是一个意见,但我很好奇,看看是否有其他人有过这种情况下的经验。
IMO,IF语句(我会把它写成IF/ELSE)会更好,因为那样它只会是1 INSERT INTO调用正在进行,而您的第二个示例将执行2 INSERT INTO调用,如果没有插入。把它写出来就像第二个例子一样没有意义,因为'@ SWITCH'一次只能设置为1,所以实际上只会使用其中一个插入语句。 –