查询效率。在temporalTable上的Case vs INNER JOIN

时间:2015-11-07 01:48:25

标签: performance tsql

在性能方面,这有什么好处?

  1. 使用临时表

    CREATE TABLE #sex (idReg INT, character NVARCHAR(1))
    INSERT INTO #sex
    SELECT 1, 'M'
    UNION
    SELECT 2, 'F' 
    
    SELECT p.name, s.character as sexChar
    FROM tbl_person p INNER JOIN #sex s ON p.sex=s.idReg
    
  2. 使用CASE

    SELECT p.name,
    (case when sex=1 THEN 'M'
    when sex=2 THEN 'F'
    END) as sexChar
    FROM tbl_person p
    
  3. (在实际情况中,将有10个选项,而不仅仅是示例的M / F)

1 个答案:

答案 0 :(得分:1)

使用case语句的第二个更快:查询成本相对于批处理为12%,其中第一个查询成本为88%