Select 문의 후 줄 수 있어야 합니다. # 39 의 what& 최적의 SQL 외곽진입?
39 m 발굴하고자 하는 i& 열 한 곳에서, 그리고 데릭쉐퍼드와 표 (no 조인) 이 수가 행뿐만 전에 내가 먼저 행뿐만 검색하는 것이 가장 좋습니다. 나는 두 가지 방식은 내려와 정보를 제공하는 데릭쉐퍼드와.
- 외곽진입 1:*
SELECT COUNT( my_table.my_col ) AS row_count
FROM my_table
WHERE my_table.foo = 'bar'
그럼
SELECT my_table.my_col
FROM my_table
WHERE my_table.foo = 'bar'
또는 외곽진입 2
SELECT my_table.my_col, ( SELECT COUNT ( my_table.my_col )
FROM my_table
WHERE my_table.foo = 'bar' ) AS row_count
FROM my_table
WHERE my_table.foo = 'bar'
때문에 나는 이 일을 하는 마이 SQL 드라이버구성 (SQL 네이티브 클라이언트 9.0) 사용할 수 있는 SELECT 문은 허용하지 않습니다 스크라로카운트 알아야 할 수는 있지만 그 전에 내 행뿐만 어레이에서는 할당하고자 위해 할당 정보 예정이다. 즉, 사용하여 동적으로 할당된 컨테이너입니다 죄송합니다. 선택 사항이 아닙니다 이 지역 내 프로그램였어
나는 것을 우려하는 다음과 같은 상황이 발생할 수 있습니다.
- SELECT for 카운트입니다 테스트타사의
- 다른 명령어 테스트타사의 행일, 추가 또는 제거
- SELECT for data 테스트타사의 갑자기 이 어레이에는 가 잘못된 크기.
- 더 이상의 시도할 경우, 이 데이터를 기록할 수 있는 내 프로그램였어 어레이에는 제한값 및 사고
외곽진입 2 는 이 문제를 금지?
또한 두 개 중 하나를 더 빠를 것으로 외곽진입? 그렇다면 어떤?
마지막으로, 더 나은 외곽진입 갖고 있는지 생각해 보아야 합니다. (아마도 수 있는 방법을 알려 줄 수 있는 선택 행뿐만 반품해야 드라이버를 사용한 결과 스크라로카운트?)
위에서 언급한 것과 함께, 나는 그 질문에 대한 기본 c++컴파일러는 사용하여 SQL 드라이버 (Microsoft 에서 제공하는.)
32
10
39 you& 경우, re SQL Server 사용 후 선택할 수 있고, 쿼리를 @@RowCount 함수 (또는 경우 결과 집합을 가지고 있을 수 2 개 이상의 억원으로으로 행뿐만 list. RowCount_Big () 함수). 이 수를 반환되므로 의해 선택된 행뿐만 행뿐만 삽입 / 업데이트 / 삭제 또는 번호를 영향을 받는 전날 성명을 발표했다.
행 또는 스케쳐내 카운트입니다 비슷한 결과가 포함된 전송됩니까 외곽진입 # 2 를 사용할 수 있습니다. [3] [끝날거요 절]
조항을 통해 사용할 때보다 훨씬 더 나은 성능을 얻기 위해 사용하는 서브케리 줄 수 있을 것이다. @@Rowcount 사용하여 최상의 성능을 갖게 될 수 있기 때문에, 모든 비용은 t # 39 좁히어 won& 쿼리하지 @@RowCount 기술서임을 선택
이에 대해 업데이트하십시오 셀명: 내가 준 예는 행) 에 의해 정의된 줄 것이라고, 이 경우 " my_table.foo" 의해 파티션에만 # 파티션에만 -;). 각 행의 는 열의 값이 # 와 동일한 값을 my_table.foo. 행 예를 들어, & # 39 절 = 있으므로, 여기서 my_table.foo 쿼리하지 경식도 " bar& # 39 의 동일한 가치를 갖게 될 my_table.foo ",, 모든 행을 결과 세트, 그러므로 모든 행과 열에 값을 받을 수 있다. (이 경우) 의 이 같은 비유하 # 행의 질의입니다.
다음은 각 행 즉 열이 더 좋은 방법 예 / 간단해진다는 포함 총 # 의 행을 결과 세트. 단순히 분리하십시오 옵션임 파티션에만 by 절입니다.
[4]: http://msdn.microsoft.com/en-us/library/ms189461.aspx " http://msdn.microsoft.com/en-us/library/ms189461.aspx";
두 가지뿐입니다 수 있는 방안을 100% 것이 확실한 COUNT (*) '와' 실제 쿼리하지 부여하느뇨 일관됨 결과:
그 중 하나를 사용하여 만든 새로운 행뿐만 격리인 수준에서는 다른 중요한 이유는 격리인 수준이 제대로 볼 수 있는 다른 클라이언트가 될 수 있도록 현재 트랜잭션입니다. Msdn 설명서를 읽고 대한 자세한 내용은 '설정되었습니다 트랜잭션 격리'.
항상 맞는 결과를 계수 2 는 복귀하십시오 외곽진입 설정되었습니다.
내가 이 연결할 수 있다고 해서, 서브쿼리 제안하세요 데이터베이스에구성원을 외부 조건에 따라 카운트입니다 표시되어도 쿼리하지 찼음을 일치시킵니다 http://cowcast. creativecow. 데이터세트를.
39 우려가 있는 경우, re you& 행 수를 변경할 수 있는 조건을 충족합니다 쿼리하고 읽어들이기를 결과, 이후 몇 밀리초입니다 실행 할 수 있습니다 / 실행하십시오 인사이드라면 쿼리합니다 트랜잭션:
이는 올바른 값이 항상 반품하십시오.
또한, 만약 you& # 39, re SQL Server 사용, 마지막 행의 개수는 @@ROWCOUNT 사용할 수 있는 출력을 얻을 수 있으며, 실제 영향을 받는 기술서임을 리디렉션하십시오 임시 테이블 또는 테이블 가변으로 쿼리하지 복귀하십시오 수 있도록 하는, 아니 아예 모든 거래.
몇 가지 아이디어를:
정말 간에 변경될 경우 해당 줄 수 있다는 우려를 갖고 있는 select count 와 select 문을 왜안돼요 행뿐만 선택 붙여넣습니다 임시 표를 먼저? 그래야 걸 알잖나 동기화 상태가 됩니다.
이 추가 발생할 수 있기 때문에 그냥 구글 엔드입니다 질문이예요 상단형 내가 이 sqlite 의 로카운트 사용할 수 있습니다.
이 유형의 데이터를 처리하기 위한 더 나은 패턴을 생각을 할 수도 있습니다.
아니 자체 프레스펙팅 sql 쿼리를 시용되는 행뿐만 드라이버구성 알려드립니다 반환되므로 행을 반환 전에 때문에 답변이 변경 (거래, 사용하지 않으면 문제를 만들 수 있는 자체.)
39, t change - 구글 및 SQL won& 행뿐만 수가 있다.
39, 벡터 결과 등을 넣어 don& 왜 t you? # 39, 크기를 알 수 없는 이쪽요 너회가 don& 전에 손.