none
預存程序中使用TOP語法,效能問題 RRS feed

  • 問題

  • 此語法如下,在MSSQL 2000執行只需3分鐘,MSSQL2005卻需40分,

    MSSQL 2005的硬體環境,比2000高

    table_A 資料量約20000筆

    table_B 資料量約10000筆

    table_C 資料量約50000筆

     

    三個table的關係

    table_B : table_A (1:N)

    table_B : table_C (1:N)

     

    是否需作語法上的修正呢?

     

    SELECT r01,r02,
    (SELECT TOP 1 productcode FROM table_A

     WHERE barcode=table_C.r03),
    (SELECT prdtcdesc FROM table_B 
     WHERE productcode =
        (SELECT TOP 1 productcode FROM table_A

         WHERE barcode=table_C.r03)),
    (SELECT bigtype FROM  table_B
     WHERE productcode =
       (SELECT TOP 1 productcode FROM table_A

        WHERE barcode=table_C.r03)),
    (SELECT middletype FROM table_B
     WHERE productcode =
       (SELECT TOP 1 productcode FROM table_A

        WHERE barcode=table_C.r03)),
    (SELECT smalltype FROM table_B
     WHERE productcode =
       (SELECT TOP 1 productcode FROM table_A

       WHERE barcode=table_C.r03)),
    (SELECT cost FROM table_B
     WHERE productcode =
       (SELECT TOP 1 productcode FROM table_A

        WHERE barcode=table_C.r03)),
    (SELECT suppliercode FROM table_B
     WHERE productcode =
       (SELECT TOP 1 productcode FROM table_A

        WHERE barcode=table_C.r03)),
    (SELECT suppliercode FROM table_B
     WHERE productcode =
      (SELECT TOP 1 productcode  FROM table_A

       WHERE barcode=table_C.r03)),r31,r32
    FROM table_C

    2007年7月26日 上午 11:21

解答

  • 請問 SQL Server 2005 資料庫是否由 SQL Server 2000 升級而來,如果是,在升級完畢之後,是否有進行下列的操作:
    • 更改相容性層級 - 使用 sp_dbcmptlevel 預存程序,來更新 SQL Server 2005 資料庫的相容性層級。
    • 更新統計資料 - 使用 sp_updatestats 預存程序,來更新 SQL Server 2005 資料庫中的使用者自訂資料表之統計資料。
    • 更新使用方式計數器 - 執行 DBCC UPDATEUSAGE 以便更新資料表和索引資料列計數與頁面計數。
    2007年7月26日 下午 02:14
    版主

所有回覆

  • 請問 SQL Server 2005 資料庫是否由 SQL Server 2000 升級而來,如果是,在升級完畢之後,是否有進行下列的操作:
    • 更改相容性層級 - 使用 sp_dbcmptlevel 預存程序,來更新 SQL Server 2005 資料庫的相容性層級。
    • 更新統計資料 - 使用 sp_updatestats 預存程序,來更新 SQL Server 2005 資料庫中的使用者自訂資料表之統計資料。
    • 更新使用方式計數器 - 執行 DBCC UPDATEUSAGE 以便更新資料表和索引資料列計數與頁面計數。
    2007年7月26日 下午 02:14
    版主
  •  

    感謝您

    試過之後,效能已有改善

    2007年7月27日 上午 11:16