【发布时间】:2017-03-14 19:49:50
【问题描述】:
需要帮助以更快地执行和优化以下内容。
- 公司 - 25 行
- warranty_period - 878 行
- company_claimtype - 216 行
- claim_type - 25 行
- 客户 - 15980 行
- auto_handle - 25 行
- auto_handle_condition - 31 行
- PART_REQUIRED_RETURN - 4521 行
以下查询花费了将近 12 分钟的时间来执行,它只包含上述所有表的左外连接:
select
company0_.ID as ID1_9_0_,
warrantype1_.ID as ID1_36_1_,
partsrequi2_.ID as ID1_20_2_,
claimtype4_.ID as ID1_8_3_,
autohandle5_.ID as ID1_4_4_,
autohandle6_.ID as ID1_5_5_,
customer7_.ID as ID1_14_6_,
company0_.CREATED as CREATED2_9_0_,
company0_.UPDATED as UPDATED3_9_0_,
company0_.AUTO_REJECT_USER as AUTO_REJ4_9_0_,
company0_.CLAIM_CREDIT_ORDER_HISTORY as CLAIM_CR5_9_0_,
company0_.CLAIM_ORDER_HISTORY as CLAIM_OR6_9_0_,
company0_.COMPANY_CODE as COMPANY_7_9_0_,
company0_.COMPANY_NAME as COMPANY_8_9_0_,
company0_.CONNECTED_TO_ERP as CONNECTE9_9_0_,
company0_.DEFAULT_CUSTOMER_ID as DEFAULT16_9_0_,
company0_.DATE_FORMAT as DATE_FO10_9_0_,
company0_.DISPLAY_WORK_LOCATION as DISPLAY11_9_0_,
company0_.DISTANCE_UNIT as DISTANC12_9_0_,
company0_.ENABLE_SHIPPING_LABEL as ENABLE_13_9_0_,
company0_.HANDLE_CREDIT_INVOICES as HANDLE_14_9_0_,
company0_.RETURNS_PARTS_DAYS as RETURNS15_9_0_,
warrantype1_.CREATED as CREATED2_36_1_,
warrantype1_.UPDATED as UPDATED3_36_1_,
warrantype1_.COMPANY_ID as COMPANY_8_36_1_,
warrantype1_.PERIOD_CONSUMER as PERIOD_C4_36_1_,
warrantype1_.PERIOD_PROFESSIONAL as PERIOD_P5_36_1_,
warrantype1_.PRODUCT_GROUP as PRODUCT_6_36_1_,
warrantype1_.PRODUCT_NO as PRODUCT_7_36_1_,
warrantype1_.COMPANY_ID as COMPANY_8_36_0__,
warrantype1_.ID as ID1_36_0__,
partsrequi2_.CREATED as CREATED2_20_2_,
partsrequi2_.UPDATED as UPDATED3_20_2_,
partsrequi2_.COMPANY_ID as COMPANY_5_20_2_,
partsrequi2_.PRODUCT_NO as PRODUCT_4_20_2_,
partsrequi2_.COMPANY_ID as COMPANY_5_20_1__,
partsrequi2_.ID as ID1_20_1__,
claimtype4_.CREATED as CREATED2_8_3_,
claimtype4_.UPDATED as UPDATED3_8_3_,
claimtype4_.CATEGORY as CATEGORY4_8_3_,
claimtype4_.CLAIM_TYPE as CLAIM_TY5_8_3_,
claimtype4_.SORT_ORDER as SORT_ORD6_8_3_,
claimtype4_.TEXT_KEY as TEXT_KEY7_8_3_,
claimtypes3_.COMPANY_ID as COMPANY_2_10_2__,
claimtypes3_.CLAIMTYPE_ID as CLAIMTYP1_10_2__,
autohandle5_.CREATED as CREATED2_4_4_,
autohandle5_.UPDATED as UPDATED3_4_4_,
autohandle5_.[ACTION] as ACTION4_4_4_,
autohandle5_.[ACTIVE] as ACTIVE5_4_4_,
autohandle5_.[ASSIGN] as ASSIGN6_4_4_,
autohandle5_.[COMPANY_ID] as COMPANY_8_4_4_,
autohandle5_.[NAME] as NAME7_4_4_,
autohandle5_.[COMPANY_ID] as COMPANY_8_4_3__,
autohandle5_.ID as ID1_4_3__,
autohandle6_.CREATED as CREATED2_5_5_,
autohandle6_.UPDATED as UPDATED3_5_5_,
autohandle6_.AUTO_HANDLE_ID as AUTO_HAN7_5_5_,
autohandle6_.[OPERATOR] as OPERATOR4_5_5_,
autohandle6_.[TYPE] as TYPE5_5_5_,
autohandle6_.[VALUE] as VALUE6_5_5_,
autohandle6_.AUTO_HANDLE_ID as AUTO_HAN7_5_4__,
autohandle6_.ID as ID1_5_4__,
customer7_.CREATED as CREATED2_14_6_,
customer7_.UPDATED as UPDATED3_14_6_,
customer7_.COMPANY_ADDRESS as COMPANY_4_14_6_,
customer7_.STREET as STREET5_14_6_,
customer7_.ZIPCODE as ZIPCODE6_14_6_,
customer7_.COMPANY_ID as COMPANY_9_14_6_,
customer7_.CUSTOMER_NO as CUSTOMER7_14_6_,
customer7_.NAME as NAME8_14_6_
from
COMPANY company0_
left outer join
WARRANTY_PERIOD warrantype1_
on company0_.ID=warrantype1_.COMPANY_ID
left outer join
PART_REQUIRED_RETURN partsrequi2_
on company0_.ID=partsrequi2_.COMPANY_ID
left outer join
COMPANY_CLAIMTYPE claimtypes3_
on company0_.ID=claimtypes3_.COMPANY_ID
left outer join
CLAIM_TYPE claimtype4_
on claimtypes3_.CLAIMTYPE_ID=claimtype4_.ID
left outer join
AUTO_HANDLE autohandle5_
on company0_.ID=autohandle5_.[COMPANY_ID]
left outer join
AUTO_HANDLE_CONDITION autohandle6_
on autohandle5_.ID=autohandle6_.AUTO_HANDLE_ID
left outer join
CUSTOMER customer7_
on company0_.DEFAULT_CUSTOMER_ID=customer7_.ID
【问题讨论】:
-
除了图片之外,我们还需要更多的计划,但您已经有了一个良好的开端。使用Paste The Plan @ brentozar.com 分享您的执行计划,以下是说明:How to Use Paste the Plan。
-
也共享创建表/索引子句
-
执行计划请到此链接jmp.sh/v/nfHwSoOBi6mIZ6Blo9DA
-
请在文件中找到创建表和索引,可从链接jmp.sh/v/1jleLsxw5tZvvcAEc2Ub下载
标签: sql-server query-optimization