WHERE 절의 구조로 인해 쿼리 속도가 느려집니다.

MCP_infiltrator

관심 인구의 @TABLE을 생성하는 쿼리가 있습니다. 구조는 다음과 같습니다.

DECLARE @SepsisTbl TABLE (
    PK INT IDENTITY(1, 1) PRIMARY KEY
    , Name                VARCHAR(500)
    , MRN                 INT
    , Account             INT
    , Age                 INT -- Age at arrival
    , Arrival             DATETIME
    , Triage_StartDT      DATETIME
    , Left_ED_DT          DATETIME
    , Disposition         VARCHAR(500)
    , Mortality           CHAR(1)
);

WITH Patients AS (
    SELECT UPPER(Patient)             AS [Name]
    , MR#
    , Account
    , DATEDIFF(YEAR, AgeDob, Arrival) AS [Age_at_Arrival]
    , Arrival
    , Triage_Start
    , TimeLeftED
    , Disposition
    , CASE
        WHEN Disposition IN (
            'Medical Examiner', 'Morgue'
        )
        THEN 'Y'
        ELSE 'N'
      END                             AS [Mortality]

    FROM SMSDSS.c_Wellsoft_Rpt_tbl
    WHERE Triage_Start IS NOT NULL
    AND (
        Diagnosis LIKE '%SEPSIS%'
        OR
        Diagnosis LIKE '%SEPTIC%'
    )
)

INSERT INTO @SepsisTbl
SELECT * FROM Patients

이 시점부터 저는 LEFT OUTER JOIN이 테이블 에 다른 유형의 주문을 찾는 동일한 종류의 쿼리를 5 개 더 추가했습니다 . 내 질문은 테이블의 where 절을 다음과 같이 변경할 때 성능이 왜 그렇게 많이 저하되는지입니다.

AND A.Account IN (
    SELECT Account
    FROM SMSDSS.c_Wellsoft_Rpt_tbl
    WHERE (
        Diagnosis LIKE '%SEPSIS%'
        OR
        Diagnosis LIKE '%SEPTIC%'
    )

이에:

AND A.Account IN (
    SELECT Account
    FROM @SepsisTbl
)

실행 시간은 2.5 분에서 10 분 이상이며 여전히 결과가 없습니다. CTE 자체는 F5를 누를 수있는 한 빨리 실행됩니다.

감사합니다,

DeanOC

문제는 테이블 변수에 계정 인덱스가 없기 때문이라고 생각합니다. 계정에 색인을 추가하면 더 나은 성능을 기대할 수 있습니다.

인덱스를 추가하는 방법에 대한 자세한 내용은이 질문에 대한 답변을 참조하십시오. 테이블 변수에 인덱스 생성

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

JS의 while 루프로 인해 브라우저 속도가 느려집니다.

분류에서Dev

코드의 함수로 인해 속도가 느려 집니까?

분류에서Dev

관련 컬렉션 필드를 사용하여 조회 및 정렬이 포함 된 MongoDB 집계로 인해 쿼리 속도가 느려집니다.

분류에서Dev

여러 테이블을 조인하는 MySQL보기로 인해 쿼리가 느려집니다.

분류에서Dev

Oracle : ORA_ROWSCN을 검색하면 큰 테이블에서 쿼리 속도가 크게 느려집니다 (where 절 없음).

분류에서Dev

사용자 제어의 시각적 상태로 인해 렌더링 속도가 느려집니다.

분류에서Dev

where 절 내에 where 절이있는 Linq 쿼리로 인해 오류가 발생합니다.

분류에서Dev

Dropbox 업로드로 인해 인터넷 속도가 크게 느려집니다

분류에서Dev

기존 하위 쿼리 및 OR의 WHERE 절로 인해 UnknownError 발생

분류에서Dev

조건부 SELECT 인수가있는 MySQL 쿼리-Where 절의 알 수없는 열

분류에서Dev

내부 조인이있는 내부 조인 쿼리와 where 절 쿼리의 차이점은 무엇입니까?

분류에서Dev

이 프로그램의 어떤 작업으로 인해 속도가 느려 집니까?

분류에서Dev

두 개의 빠른 인덱스 쿼리를 결합하면 결과가 느려집니다.

분류에서Dev

무언가를 업로드 할 때마다 인터넷 속도가 매우 느려집니다. 어떡해?

분류에서Dev

무언가를 업로드 할 때마다 인터넷 속도가 매우 느려집니다. 어떡해?

분류에서Dev

후속 쿼리로 인해 스크립트가 중단되고 컴퓨터 속도가 느려짐

분류에서Dev

왼쪽 조인의 where 절에서 MySQL 쿼리 오류

분류에서Dev

하나의 쿼리로 인해 MySQL 서버가 타 버릴 수 있습니까? 속도를 높이는 방법?

분류에서Dev

String / Datetime 필드가있는 MATLAB Pre-Allocate 구조로 인해 코드가 상당히 느려집니다.

분류에서Dev

업데이트로 인해 시스템 속도가 느려 집니까?

분류에서Dev

업데이트로 인해 시스템 속도가 느려 집니까?

분류에서Dev

업데이트로 인해 시스템 속도가 느려 집니까?

분류에서Dev

FROM 절의 하위 쿼리로 인해 FOR XML AUTO 출력에서 원하지 않는 ELEMENT가 발생합니다.

분류에서Dev

LINQ 쿼리의 Where 절이 데이터에 대해 평가되지 않습니다.

분류에서Dev

그래프의 일부가 작아지면 Cypher 쿼리가 느려집니다.

분류에서Dev

Where 절의 쿼리 구문 오류

분류에서Dev

Where 절 및 내부 조인 구문 쿼리

분류에서Dev

WHERE 절의 SQL 쿼리 집계 함수

분류에서Dev

SQL 쿼리의 조인 절에 조건을 추가하는 대신 where를 사용하는 것이 더 낫습니까?

Related 관련 기사

  1. 1

    JS의 while 루프로 인해 브라우저 속도가 느려집니다.

  2. 2

    코드의 함수로 인해 속도가 느려 집니까?

  3. 3

    관련 컬렉션 필드를 사용하여 조회 및 정렬이 포함 된 MongoDB 집계로 인해 쿼리 속도가 느려집니다.

  4. 4

    여러 테이블을 조인하는 MySQL보기로 인해 쿼리가 느려집니다.

  5. 5

    Oracle : ORA_ROWSCN을 검색하면 큰 테이블에서 쿼리 속도가 크게 느려집니다 (where 절 없음).

  6. 6

    사용자 제어의 시각적 상태로 인해 렌더링 속도가 느려집니다.

  7. 7

    where 절 내에 where 절이있는 Linq 쿼리로 인해 오류가 발생합니다.

  8. 8

    Dropbox 업로드로 인해 인터넷 속도가 크게 느려집니다

  9. 9

    기존 하위 쿼리 및 OR의 WHERE 절로 인해 UnknownError 발생

  10. 10

    조건부 SELECT 인수가있는 MySQL 쿼리-Where 절의 알 수없는 열

  11. 11

    내부 조인이있는 내부 조인 쿼리와 where 절 쿼리의 차이점은 무엇입니까?

  12. 12

    이 프로그램의 어떤 작업으로 인해 속도가 느려 집니까?

  13. 13

    두 개의 빠른 인덱스 쿼리를 결합하면 결과가 느려집니다.

  14. 14

    무언가를 업로드 할 때마다 인터넷 속도가 매우 느려집니다. 어떡해?

  15. 15

    무언가를 업로드 할 때마다 인터넷 속도가 매우 느려집니다. 어떡해?

  16. 16

    후속 쿼리로 인해 스크립트가 중단되고 컴퓨터 속도가 느려짐

  17. 17

    왼쪽 조인의 where 절에서 MySQL 쿼리 오류

  18. 18

    하나의 쿼리로 인해 MySQL 서버가 타 버릴 수 있습니까? 속도를 높이는 방법?

  19. 19

    String / Datetime 필드가있는 MATLAB Pre-Allocate 구조로 인해 코드가 상당히 느려집니다.

  20. 20

    업데이트로 인해 시스템 속도가 느려 집니까?

  21. 21

    업데이트로 인해 시스템 속도가 느려 집니까?

  22. 22

    업데이트로 인해 시스템 속도가 느려 집니까?

  23. 23

    FROM 절의 하위 쿼리로 인해 FOR XML AUTO 출력에서 원하지 않는 ELEMENT가 발생합니다.

  24. 24

    LINQ 쿼리의 Where 절이 데이터에 대해 평가되지 않습니다.

  25. 25

    그래프의 일부가 작아지면 Cypher 쿼리가 느려집니다.

  26. 26

    Where 절의 쿼리 구문 오류

  27. 27

    Where 절 및 내부 조인 구문 쿼리

  28. 28

    WHERE 절의 SQL 쿼리 집계 함수

  29. 29

    SQL 쿼리의 조인 절에 조건을 추가하는 대신 where를 사용하는 것이 더 낫습니까?

뜨겁다태그

보관