«optimization» 태그된 질문

데이터베이스의 맥락에서 최적화 란 쿼리 옵티마이 저가 효율적인 물리적 실행 계획을 선택하는 프로세스를 말합니다.

1
SQL Server가 CTE를 "최적화 울타리"로 사용할 때 결정하는 규칙은 무엇입니까?
얼마 전 Brent Ozar는 SQL Server와 PostgreSQL의 차이점을 자세하게 설명하는 게시물을 게시했습니다. SQL Server와 PostgreSQL의 두 가지 중요한 차이점 첫 번째 요점 ( "CTE는 최적화 펜스")은 제공된 예에서 SQL Server가 CTE와 기본 쿼리를 함께 결합하여 단일 쿼리로 최적화한다는 점이 분명하기 때문에 내 시선을 사로 잡았습니다. PostgreSQL). 그러나이 동작은 SQL Server가 …

2
왜 이것이 더 빠르고 사용하기에 안전합니까? (첫 글자가 알파벳 인 곳에)
간단히 말해서, 우리는 작은 사람들의 테이블을 매우 큰 사람들의 테이블로 업데이트하고 있습니다. 최근 테스트에서이 업데이트를 실행하는 데 약 5 분이 걸립니다. 우리는 가능한 한 가장 최적화 된 것처럼 보이는 것을 보았습니다. 동일한 쿼리가 이제 2 분 이내에 실행되며 동일한 결과를 완벽하게 생성합니다. 다음은 쿼리입니다. 마지막 줄은 "최적화"로 추가됩니다. 쿼리 시간이 …


1
클러스터 된 인덱스가있는 SQL Server 테이블에서 데이터를 삭제하는 동안 B-Tree의 균형이 재조정됩니까?
기본 키에 클러스터 된 인덱스가있는 SQL Server 데이터베이스에 테이블이 있습니다. 테이블에는 백만 개의 행이 있습니다. 테이블에서 10K 행을 삭제하면 삭제 작업 중에 인덱스가 재구성됩니까? 삭제 작업은 저장 프로 시저의 일부입니다. 한 번에 둘 이상의 클라이언트가 저장 프로 시저를 실행할 수 있지만 각 개별 실행은 고유 한 행 집합 (기본 키로 …

2
인덱스 추가의 비용 / 혜택을 결정하는 방법은 무엇입니까?
Craig Ringer 에 따르면 : 일반적으로 참조 측 외래 키 열에 대한 색인을 작성하거나 포함하는 것이 좋습니다. 각 인덱스는 당신이 모든에 성능 비용을 지불하도록 감속이, 아래로 약간 작업을 DML 추가 INSERT, UPDATE또는 DELETE. 인덱스를 거의 사용하지 않으면 가치가 없을 수 있습니다. 인덱스 추가의 이점이 비용을 능가하는지 어떻게 알 수 있습니까? …


1
식의 유형 변환은 쿼리 계획 선택의 "CardinalityEstimate"에 영향을 줄 수 있습니까?
히스토리 데이터를 파티션 된보기로 저장하는 아카이브 데이터베이스를 유지 보수합니다. 분할 열은 날짜 / 시간입니다. 보기 아래의 각 테이블은 한 달의 데이터를 저장합니다. datetime 열에 대한 점검 제한 조건으로 각 테이블의 이벤트를 제한합니다. 이를 통해 옵티마이 저는 이벤트 날짜 시간 컬럼에서 필터링하는 쿼리에 대해 검색되는 테이블을 제한 할 수 있습니다. 검사 …

3
데이터베이스에서 행의 모든 ​​변경 사항을 기록하면 일반적으로 어떻게 저장됩니까?
내가 작업중 인 프로젝트 에서 데이터베이스의 일부 테이블에있는 행의 모든 ​​변경 사항 은 추가 감사 또는 롤백을 위해 추적되어야합니다 . 누가 IP 주소와 시간에서 행을 수정했는지 쉽게 찾고 이전 버전을 복원 할 수 있어야합니다. 비슷한 것은 예를 들어 Stack Exchange에서 사용됩니다. 다른 사람의 질문을 변경하면 내가 변경 한 것을 발견하고 …

2
PostgreSQL은 NULL이 아닌 DEFAULT로 열 추가를 최적화합니까?
값 NOT NULL이있는 열을 추가 할 때 DEFAULTPostgreSQL이이 작업을 최적화합니까? 테이블에 n 개의 행이있는 경우 최적화되지 않은 alter-table-add-column은 기본값 n 쓰기를 생성하므로 매우 고통 스럽습니다. 최적화를 통해 DB는 즉시 새로운 열을 생성하고, 적절한 인덱스 데이터 구조에서 해당 열에 대해 기본값이 아닌 값을 찾을 수 없을 때 반환되는 기본값의 복사본 하나만 …

3
기본 키의 자체 조인
N자체 조인으로 구성된이 쿼리를 고려하십시오 . select t1.* from [Table] as t1 join [Table] as t2 on t1.Id = t2.Id -- ... join [Table] as tN on t1.Id = tN.Id N 개의 클러스터 된 인덱스 스캔 및 N-1 병합 조인으로 실행 계획을 생성합니다. 솔직히 모든 조인을 최적화하지 않고 클러스터 된 …

1
스캔을 유발하는 지속 계산 열
일반 열을 지속 형 계산 열로 변환하면이 쿼리에서 인덱스 검색을 수행 할 수 없습니다. 왜? 2016 SP1 CU1을 포함한 여러 SQL Server 버전에서 테스트되었습니다. 재현 계산 열 일반 열 문제는 함께 table1, col7. 테이블과 쿼리는 원본의 일부 (및 단순화 된) 버전입니다. 쿼리를 다르게 다시 작성할 수 있다는 것을 알고 있으며 …

3
실행 계획이 INDEX를 사용하지 않고 테이블 스캔을 사용합니다.
인덱스 또는 테이블 스캔을 사용할 때 SQL Server는 통계를 사용하여 어느 것이 더 나은지 알 수 있습니다. 2 천만 개의 행이있는 테이블이 있습니다. (SnapshotKey, Measure) 및이 쿼리에 대한 색인이 있습니다. select Measure, SnapshotKey, MeasureBand from t1 where Measure = 'FinanceFICOScore' group by Measure, SnapshotKey, MeasureBand 쿼리는 500k 개의 행을 반환합니다. …

5
검색을 기대하지만 스캔 받기
SELECT명령문 을 최적화해야 하지만 SQL Server는 항상 탐색 대신 인덱스 스캔을 수행합니다. 이것은 물론 저장 프로 시저에있는 쿼리입니다. CREATE PROCEDURE dbo.something @Status INT = NULL, @IsUserGotAnActiveDirectoryUser BIT = NULL AS SELECT [IdNumber], [Code], [Status], [Sex], [FirstName], [LastName], [Profession], [BirthDate], [HireDate], [ActiveDirectoryUser] FROM Employee WHERE (@Status IS NULL OR [Status] = …


2
MySQL : delete… where..in () vs delete..from..join 및 subselect를 사용하여 삭제시 잠긴 테이블
면책 조항 : 데이터베이스 내부에 대한 지식이 부족하다는 것을 변명하십시오. 여기 간다: 데이터베이스의 주기적 정리 작업에서 성능 문제가 큰 응용 프로그램 (우리가 작성하지 않은)을 실행합니다. 쿼리는 다음과 같습니다. delete from VARIABLE_SUBSTITUTION where BUILDRESULTSUMMARY_ID in ( select BUILDRESULTSUMMARY_ID from BUILDRESULTSUMMARY where BUILDRESULTSUMMARY.BUILD_KEY = "BAM-1"); 간단하고 읽기 쉽고 표준 SQL. 그러나 불행히도 …

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.