sybase有时候真的是让人奔溃,以下是一条速度很慢的SQL:
对表指定了索引后,速度有所改进 .
当然还可以指定这些SQL的执行计划,后面将会讨论Sybase的执行计划。
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的执行计划。
本文介绍了一条在Sybase数据库中执行速度缓慢的SQL查询,并通过为涉及的表添加索引来提高其执行效率。文中还提到可以进一步指定SQL执行计划来优化性能。
37

被折叠的 条评论
为什么被折叠?



