sybase有时候真的是让人奔溃,以下是一条速度很慢的SQL:
SELECT EII.BARCODE, .... FROM ETS_ITEM_MATCH EIM, ETS_FA_ASSETS EFA , ETS_ITEM_INFO EII , AMS_OBJECT_ADDRESS AOA, ETS_OBJECT EO, AMS_MIS_EMPLOYEE AME, ETS_SYSTEM_ITEM ESI WHERE EIM.SYSTEMID = EII.SYSTEMID AND EII.ITEM_CODE = ESI.ITEM_CODE AND EIM.ASSET_ID = EFA.ASSET_ID AND EII.ADDRESS_ID = AOA.ADDRESS_ID AND AOA.OBJECT_NO = EO.WORKORDER_OBJECT_NO AND EII.RESPONSIBILITY_USER *= AME.EMPLOYEE_ID ORDER BY EO.WORKORDER_OBJECT_CODE DESC
对表指定了索引后,速度有所改进 .
SELECT EII.BARCODE, .... FROM ETS_ITEM_MATCH EIM (INDEX ETS_ITEM_MATCH_110708_U1), ETS_FA_ASSETS EFA (INDEX ETS_FA_ASSETS_PK), ETS_ITEM_INFO EII (INDEX ETS_ITEM_INFO_110708_N7), AMS_OBJECT_ADDRESS AOA (INDEX AMS_OBJECT_ADDRESS_N), ETS_OBJECT EO (INDEX ETS_OBJECT_11089119911), AMS_MIS_EMPLOYEE AME (INDEX AMS_MIS_EM_6748144351), ETS_SYSTEM_ITEM ESI (INDEX ETS_SYSTEM_ITEM_PK) WHERE EIM.SYSTEMID = EII.SYSTEMID AND EII.ITEM_CODE = ESI.ITEM_CODE AND EIM.ASSET_ID = EFA.ASSET_ID AND EII.ADDRESS_ID = AOA.ADDRESS_ID AND AOA.OBJECT_NO = EO.WORKORDER_OBJECT_NO ....
当然还可以指定这些SQL的执行计划,后面将会讨论Sybase的执行计划。