쌍 목록을 사용하여 SQL Server에서 행을 효율적으로 선택 하시겠습니까?

가이

수백만 개의 행이있는 상당히 큰 테이블이 있습니다. 두 열이 파이썬 코드에서 전달 된 쌍 목록에 값이있는 행을 선택하는 효율적인 코드를 작성하려고합니다. 합리적인 답변이 게시되었습니다 .

select *
from table
where convert(id1) + '-' + id2 in ('2261-7807403','2262-9807403' )

반환 된 테이블은를 통해 데이터 프레임에 저장됩니다 pd.read_sql_query. 여기에 두 가지 문제가 있습니다 (느린 문제 외에). 하나 id2는 될 수 있으며 NULL이러한 행에 대한 쿼리가 실패합니다. 더 중요한 또 다른 문제는 where에있는 튜플 목록의 크기가 1에서 수백만까지 다양 할 수 있다는 것입니다.

내 이해는 큰 목록의 경우 전체 열을 팬더로 파이썬으로 가져온 다음 거기에서 필터링하는 것이 더 낫다는 것입니다. 그러나 적은 수의 목록과 많은 수의 목록 사이를 원활하게 전환하려면 어떻게해야합니까? SQL Server와 Python의 영리한 조합으로 수행 할 수있는 방법이 있습니까?

고든 리노 프

올바른 유형을 사용하여 값을 전달해야합니다. 한 가지 방법은 파생 테이블을 생성하고 다음을 사용하는 것입니다 join.

select t.*
from table t join
     (values (2261, 7807403), . . . 
     ) v(id1, id2)
     on t1.id1 = v.id1 and t.id2 = v.id2;

비교를 위해 값을 문자열로 변환해서는 안됩니다. 이는 "어리석은"일일뿐만 아니라 성능을 심각하게 저하시킬 수 있습니다.

에 관해서는 NULL특수 논리가 없다면들, 그들은 일치하지 않습니다. SQL에는 널 안전 비교가 없습니다.

select t.*
from table t join
     (values (2261, 7807403), . . . 
     ) v(id1, id2)
     on (t1.id1 = v.id1 or t1.id1 is null and t2.id2 is null) and 
        (t.id2 = v.id2 or t1.id1 is null and t2.id2 is null);

이는 실행 계획에 영향을 미칠 수 있습니다.

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

SQL을 사용하여 효율적으로 문자열에서 특정 텍스트를 선택하는 방법

분류에서Dev

목록에서 목록을 선택 하시겠습니까?

분류에서Dev

적용 기능을 사용하여 행렬에서 셀 창을 선택 하시겠습니까?

분류에서Dev

시간당 계산을 사용하여 SQL Oracle에서 두 날짜 중에서 선택 하시겠습니까?

분류에서Dev

파이썬에서 목록을 사용하여 목록 목록을 효율적으로 정렬하는 방법

분류에서Dev

특정 방식으로 항목 목록을 쌍 목록에 매핑하는 더 효율적인 방법이 있습니까?

분류에서Dev

Watir를 사용하여 항목 번호로 드롭 다운 목록에서 항목을 선택 하시겠습니까?

분류에서Dev

하위 쿼리에서 ID 목록으로 항목을 선택 하시겠습니까?

분류에서Dev

SQL Server의 특정 열에서 값을 선택 하시겠습니까?

분류에서Dev

Excel에서 선택적으로 열을 추가 하시겠습니까?

분류에서Dev

MySQL에서 TOP 1을 사용하여 첫 번째로 큰 값을 선택 하시겠습니까?

분류에서Dev

CSS 선택기를 사용하여 정렬되지 않은 목록에서 하위 목록을 뺀 상위 요소 만 선택 하시겠습니까?

분류에서Dev

MATLAB에서 인덱스 행렬로 값을 선택 하시겠습니까?

분류에서Dev

이름 목록을 사용하여 List <Files>에서 효율적으로 파일 목록 추출

분류에서Dev

관용적 Dart : 선택적 구성 요소로 목록을 명시 적으로 정의 하시겠습니까?

분류에서Dev

Python을 사용하여 효율적으로 선 그리기

분류에서Dev

Xamarin UITest를 사용하여 iOS 선택기에서 항목을 선택 하시겠습니까?

분류에서Dev

Xamarin UITest를 사용하여 iOS 선택기에서 항목을 선택 하시겠습니까?

분류에서Dev

SQLite에 일치하는 숫자 쌍을 효율적으로 저장

분류에서Dev

"tee"를 사용하여 Ubuntu 터미널 출력을 선택적으로 기록 하시겠습니까?

분류에서Dev

n 번째 자식을 쌍으로 선택 하시겠습니까 (반복 패턴)?

분류에서Dev

드롭 다운 목록에서 빈 선택을 변경 하시겠습니까?

분류에서Dev

SQL Server에서 행을 열로 선택하는 방법

분류에서Dev

R에서 여러 개의 구분선을 사용하여 효율적으로 데이터 읽기

분류에서Dev

일치하는 개체 쌍을 효율적으로 찾기

분류에서Dev

목록에서 항목을 선택하고 목록에 추가 하시겠습니까?

분류에서Dev

선택한 목록 상자에서 선택한 항목을 검색 하시겠습니까?

분류에서Dev

R을 사용하여 열에서 단어 목록의 발생 횟수를 효율적으로 계산

분류에서Dev

열거 형 목록을 선택 목록으로 변환하고 표시를 유지 하시겠습니까?

Related 관련 기사

  1. 1

    SQL을 사용하여 효율적으로 문자열에서 특정 텍스트를 선택하는 방법

  2. 2

    목록에서 목록을 선택 하시겠습니까?

  3. 3

    적용 기능을 사용하여 행렬에서 셀 창을 선택 하시겠습니까?

  4. 4

    시간당 계산을 사용하여 SQL Oracle에서 두 날짜 중에서 선택 하시겠습니까?

  5. 5

    파이썬에서 목록을 사용하여 목록 목록을 효율적으로 정렬하는 방법

  6. 6

    특정 방식으로 항목 목록을 쌍 목록에 매핑하는 더 효율적인 방법이 있습니까?

  7. 7

    Watir를 사용하여 항목 번호로 드롭 다운 목록에서 항목을 선택 하시겠습니까?

  8. 8

    하위 쿼리에서 ID 목록으로 항목을 선택 하시겠습니까?

  9. 9

    SQL Server의 특정 열에서 값을 선택 하시겠습니까?

  10. 10

    Excel에서 선택적으로 열을 추가 하시겠습니까?

  11. 11

    MySQL에서 TOP 1을 사용하여 첫 번째로 큰 값을 선택 하시겠습니까?

  12. 12

    CSS 선택기를 사용하여 정렬되지 않은 목록에서 하위 목록을 뺀 상위 요소 만 선택 하시겠습니까?

  13. 13

    MATLAB에서 인덱스 행렬로 값을 선택 하시겠습니까?

  14. 14

    이름 목록을 사용하여 List <Files>에서 효율적으로 파일 목록 추출

  15. 15

    관용적 Dart : 선택적 구성 요소로 목록을 명시 적으로 정의 하시겠습니까?

  16. 16

    Python을 사용하여 효율적으로 선 그리기

  17. 17

    Xamarin UITest를 사용하여 iOS 선택기에서 항목을 선택 하시겠습니까?

  18. 18

    Xamarin UITest를 사용하여 iOS 선택기에서 항목을 선택 하시겠습니까?

  19. 19

    SQLite에 일치하는 숫자 쌍을 효율적으로 저장

  20. 20

    "tee"를 사용하여 Ubuntu 터미널 출력을 선택적으로 기록 하시겠습니까?

  21. 21

    n 번째 자식을 쌍으로 선택 하시겠습니까 (반복 패턴)?

  22. 22

    드롭 다운 목록에서 빈 선택을 변경 하시겠습니까?

  23. 23

    SQL Server에서 행을 열로 선택하는 방법

  24. 24

    R에서 여러 개의 구분선을 사용하여 효율적으로 데이터 읽기

  25. 25

    일치하는 개체 쌍을 효율적으로 찾기

  26. 26

    목록에서 항목을 선택하고 목록에 추가 하시겠습니까?

  27. 27

    선택한 목록 상자에서 선택한 항목을 검색 하시겠습니까?

  28. 28

    R을 사용하여 열에서 단어 목록의 발생 횟수를 효율적으로 계산

  29. 29

    열거 형 목록을 선택 목록으로 변환하고 표시를 유지 하시겠습니까?

뜨겁다태그

보관