오늘날, 고객 불만 체계를받은 카드가 두 배로 노력으로 마침내 해결, 죽은 말했다. 지금, 무엇을 해결 단계를 기록합니다 다음 참조 있도록 :
알리에 초점을 맞춘 클라이언트 시스템이 MS의 SQL2008 데이터베이스를 사용하여, 위의 구름 때문에, N 클라이언트는 갑자기 어떤 고객을 알 수 위가 있습니다.
첫 번째 단계는, 첫째, 작업 관리자를 열고 CPU 사용량을 볼
이 큰 MS의 SQL 서버 인 것을 보는 것은 너무 붙어 시스템의 모든 CPU 시간을 가지고 쿼리합니다.
두 번째 단계, 열린 MS의 SQL 서버 활동 모니터가 붙어있는 문 볼 수 있습니다.
공개 활동 모니터의 방법. 에
개체 탐색기에서 서버를 마우스 오른쪽 단추로 클릭을 찾습니다. "활동 모니터"를 참조하거나 바로 가기 키 Ctrl + Alt + A를 사용 ..
세 번째 단계는 잘못된 문을 찾을 수 있습니다. 프로세스, 작업 상태를 열기 심사 프로세스를 실행.
그것을 실행, 문 가능성이 붙어 분석 시스템, 문 하나의 실행에 의해 하나를 선택합니다. 어느 붙어 문을 찾을 수 있습니다.
내 상황은 다음과 같은 문장이다 :
SELECT A.cCrm, A.cCode AS cOrderCode, A.dRequire, A.dSubmit, B. * , C.cCode AS cProductCode, B.cProductSpec BcProductSpec, A.dConfirm, A.dCheck1, C.cParamter, C.cSpec AS cProductSpec, C.cColor, A.cCreator FROM 를 주문 WITH (NOLOCK) LEFT JOIN Orders_Product B WITH (NOLOCK) ON A.cID = B.cOrdersID LEFT JOIN 제품 C WITH (NOLOCK) ON B.cProductID = C.cID LEFT 가입 ( - 生产的产品ID는 SELECT DISTINCT A1.cProductID을 FROM dbo.Product_Item A1 LEFT JOIN dbo.Orders_ProductItem A2 ON A1.cProductID = A2.cProductID WHERE A1.iProduct ! = 0 D) ON B.cProductID = D.cProductID WHERE 1 = 1 AND B.cProductID = D.cProductID AND A.iCancel =의 ' 0" AND (상태 = 30 OR (상태 = 20 AND iNewCRM ! = 1 AND NOT이 존재는 ( SELECT 1 FROM Orders_ProductItem WITH (NOLOCK) 상기 iCustom = 1 AND cOrdersID = A.cID) ) ) AND (A.iStatusPP = 0 OR .iStatusPP = 1 ) AND NOT EXISTS ( SELECT 1 FROM MOrders_Product LEFT가 가입 dbo.MOrders를 ON MOrders.cID = MOrders_Product.cMOrdersID WHERE cOrdersProductID = B.cSubID AND dbo.MOrders.iStatus ! = 2 ) AND B.iCancelM = 0 AND B.cSubID NOT IN ( SELECT B를 .cOrdersProductID 로부터 DOrders LEFT 가입 DOrders_Sub B를 ON A.cID = B.cDOrdersID WHERE iStatus가 = 3 ) ORDER BY A.dUDate DESC ;
분석 후로 이동하지 Caton의 시스템에 안내 :
B.cSubID NOT IN ( SELECT B.cOrdersProductID을 FROM DOrders LEFT는 가입 DOrders_Sub B를 ON A.cID = B.cDOrdersID WHERE iStatus = 3
변경하지 않음에없는 시스템 정상 작동, 문제가 해결 될 때 존재한다.
변경 코드 후 :
SELECT A.cCrm, A.cCode AS cOrderCode, A.dRequire, A.dSubmit, B. * , C.cCode AS cProductCode, B.cProductSpec BcProductSpec, A.dConfirm, A.dCheck1, C.cParamter, C.cSpec AS cProductSpec, C.cColor, A.cCreator FROM 를 주문 WITH (NOLOCK) LEFT JOIN Orders_Product B WITH (NOLOCK) ON A.cID = B.cOrdersID LEFT JOIN 제품 C WITH (NOLOCK) ON B.cProductID = C.cID LEFT 가입 ( - 生产的产品ID는 SELECT DISTINCT A1.cProductID을 FROM dbo.Product_Item A1 LEFT JOIN dbo.Orders_ProductItem A2 ON A1.cProductID = A2.cProductID WHERE A1.iProduct ! = 0 D) ON B.cProductID = D.cProductID WHERE 1 = 1 AND B.cProductID = D.cProductID AND A.iCancel =의 ' 0" AND (상태 = 30 OR (상태 = 20 AND iNewCRM ! = 1 AND NOT이 존재는 ( SELECT 1 FROM Orders_ProductItem WITH (NOLOCK) 상기 iCustom = 1 AND cOrdersID = A.cID) ) ) AND (A.iStatusPP = 0 OR .iStatusPP = 1 ) AND NOT EXISTS ( SELECT 1 FROM MOrders_Product LEFT가 가입 dbo.MOrders를 ON MOrders.cID = MOrders_Product.cMOrdersID WHERE cOrdersProductID = B.cSubID AND dbo.MOrders.iStatus ! = 2 ) AND B.iCancelM = 0 AND NOT EXISTS ( SELECT 1 FROM DOrders AA 왼쪽은 가입 DOrders_Sub BB ON을AA.cID = BB.cDOrdersID 상기 상태 = 3 AND B.cSubID = bb.cOrdersProductID) ORDER BY A.dUDate의 DESC ;
다음 기사를 참조 할 수 있습니다 이유 :
https://www.cnblogs.com/totian/p/7597300.html
https://blog.csdn.net/zxu_1995/article/details/82388395