我在SQL Server 2005中維護一個函數,它基於整數輸入參數需要調用不同的函數,例如SQL Server函數中大if子句的性能改進
IF @rule_id = 1
-- execute function 1
ELSE IF @rule_id = 2
-- execute function 2
ELSE IF @rule_id = 3
... etc
的問題是,有一個公平的一些規則(約100),雖然上面是相當可讀的,它的性能是不是很大。目前它是作爲一系列IF執行的,它執行的是二進制的快捷方式,但是讀取和維護起來相當不愉快。對於表現良好且相當可維護的東西,有沒有其他想法?
最終調用的函數有多相似? – 2010-03-15 21:49:21
函數參數都是一樣的,但它們內部完成的工作是非常不同的。 – 2010-03-15 22:06:17
'CASE/WHEN'佈局可能更具性能,但解析器可能已經在內部對其進行了優化。我個人對「CASE」的偏好是在每個WHEN塊之間留出一條空白行,以使其更具可讀性。 – devstuff 2010-03-16 03:26:53