«query-performance» 태그된 질문

데이터베이스 쿼리의 성능 및 / 또는 효율성 향상에 대한 질문

6
a = 0 및 b = 0의 성능 및… z = 0 vs a + b + c + d = 0
이것은 대답을 찾을 수없는 간단한 질문입니다. 성능 측면에서 WHERE와 같은 조항 이있는 a=0 and b=0 and ... z=0경우 해당 조건을로 바꾸면 성능이 향상 a+b+...+z=0됩니까? 즉, 다음을 교체하여 성능이 향상 되었습니까? Select * From MyTable Where A=0 and B=0 and C=0 and D=0... 와 Select * From MyTable Where A+B+C+D=0... 인덱스에 …

1
SQL Server-중첩 된 비 결정적 뷰 스택에서 문자열 지역화 처리
데이터베이스 프로파일 동안 나는 액세스 얻을 약간의 비 결정적 함수를 참조하는 뷰 건너 온 분당 1000-2500 번 에 대한 각 이 응용 프로그램의 풀에서 연결을. SELECT보기에서 단순 하면 다음과 같은 실행 계획이 생성됩니다. 이는 몇 개월마다 한두 행씩 바뀌는 행이 수천 개 미만인 뷰에 대한 복잡한 계획처럼 보입니다. 그러나 다음과 …

3
SQL Server의 엄청난 데이터 및 성능
SQL Server 백엔드를 사용하여 매우 많은 양의 레코드를 수집하고 저장하는 응용 프로그램을 작성했습니다. 나는 최고점에서 평균 레코드 양이 하루에 약 3-4 억 (20 시간의 작동 시간) 정도 어딘가에 계산했습니다. 내 원래 솔루션 (실제로 데이터를 계산하기 전에)은 내 응용 프로그램이 클라이언트가 쿼리 한 동일한 테이블에 레코드를 삽입하는 것이 었습니다. 많은 레코드가 …

2
업데이트하는 행 수에 따라 완전히 다른 계획을 사용하는 T-SQL 쿼리
이 질문은 데이터베이스 관리자 스택 Exchange에서 답변을 얻을 수 있기 때문에 스택 오버플 로 에서 마이그레이션 되었습니다. 7 년 전에 이주했습니다 . "TOP (X)"절이있는 SQL UPDATE 문이 있고 값을 업데이트하는 행에 약 40 억 개의 행이 있습니다. "TOP (10)"을 사용하면 거의 즉시 실행되는 하나의 실행 계획이 있지만 "TOP (50)"이상을 사용하는 …

5
T-SQL에서 IF를 사용하면 실행 계획 캐싱이 약화되거나 중단됩니까?
이 질문은 데이터베이스 관리자 스택 Exchange에서 답변을 얻을 수 있기 때문에 스택 오버플 로 에서 마이그레이션 되었습니다. 7 년 전에 이주했습니다 . t-SQL 배치에서 IF 문을 사용하는 것이 성능에 해롭다는 것이 나에게 제안되었습니다. 확인을 찾거 나이 주장을 확인하려고합니다. SQL Server 2005 및 2008을 사용하고 있습니다. 주장은 다음과 같은 배치입니다. IF …

3
강제 흐름 구별
나는 이와 같은 테이블을 가지고있다 : CREATE TABLE Updates ( UpdateId INT NOT NULL IDENTITY(1,1) PRIMARY KEY, ObjectId INT NOT NULL ) 증가하는 ID로 객체에 대한 업데이트를 필수적으로 추적합니다. 이 테이블의 소비자 UpdateId는 특정 순서대로 시작하여 100 개의 고유 한 개체 ID 청크를 선택합니다 UpdateId. 기본적으로 중단 된 위치를 추적 …

2
기본 제약, 그만한 가치가 있습니까?
나는 보통 다음 규칙에 따라 데이터베이스를 설계합니다. db_owner 및 sysadmin 이외의 다른 사람은 데이터베이스 테이블에 액세스 할 수 없습니다. 사용자 역할은 응용 프로그램 계층에서 제어됩니다. 일반적으로 하나의 db 역할을 사용하여 뷰, 저장 프로 시저 및 함수에 대한 액세스 권한을 부여하지만 경우에 따라 일부 저장 프로 시저를 보호하기 위해 두 번째 …


2
'SELECT TOP'성능 질문
select top 100를 사용하면 훨씬 더 빠르게 실행 하고을 사용하지 않으면 훨씬 느리게 실행되는 쿼리가 top 100있습니다. 반환 된 레코드 수는 0입니다. 쿼리 계획의 차이점을 설명하거나 이러한 차이점이 설명 된 링크를 공유 할 수 있습니까? top텍스트가 없는 쿼리 : SELECT --TOP 100 * FROM InventTrans JOIN InventDim ON InventDim.DATAAREAID = …

2
IS NULL 값에서 필터링 된 인덱스가 사용되지 않는 이유는 무엇입니까?
다음과 같은 테이블 정의가 있다고 가정하십시오. CREATE TABLE MyTab ( ID INT IDENTITY(1,1) CONSTRAINT PK_MyTab_ID PRIMARY KEY ,GroupByColumn NVARCHAR(10) NOT NULL ,WhereColumn DATETIME NULL ) 필터링 된 비 클러스터형 인덱스는 다음과 같습니다. CREATE NONCLUSTERED INDEX IX_MyTab_GroupByColumn ON MyTab (GroupByColumn) WHERE (WhereColumn IS NULL) 이 인덱스가이 쿼리에 "포함되지"않는 이유 : SELECT …

1
인덱스 열의 매우 큰 테이블에서 SELECT TOP 1이 매우 느리지 만 역순 (“desc”)이 아닙니다.
강력한 서버에서 SQL Server 2014를 실행하는 약 1TB의 큰 데이터베이스가 있습니다. 몇 년 동안 모든 것이 잘 작동했습니다. 약 2 주 전에 다음을 포함한 전체 유지 관리를 수행했습니다. 모든 소프트웨어 업데이트 설치; 모든 인덱스와 컴팩트 DB 파일을 다시 빌드하십시오. 그러나 실제로드가 동일 할 때 특정 단계에서 DB의 CPU 사용량이 100 …

1
유출 레벨 2로 실행하는 동안 운영자가 tempdb를 사용하여 데이터를 유출
경고 Operator usedtempdb로 쿼리 계획에서 정렬 작업 비용을 최소화하기 위해 고심하고 있습니다.to spill data during execution with spill level 2 필자는 레벨 1 이 아닌 유출 레벨 1로 실행하는 동안 유출 데이터 와 관련된 여러 게시물을 발견했습니다 . 레벨 1은 오래된 통계로 인해 발생하는 것 같습니다 . 관련 항목을 찾을 …

3
IF EXISTS에서 쿼리를 래핑하면 속도가 매우 느려집니다.
아래 쿼리가 있습니다. select databasename from somedb.dbo.bigtable l where databasename ='someval' and source <>'kt' and not exists(select 1 from dbo.smalltable c where c.source=l.source) 위 쿼리는 3 초 안에 완료됩니다. 위의 쿼리가 값을 반환하면 저장 프로 시저를 EXIT로 원하므로 아래처럼 다시 작성하십시오. If Exists( select databasename from somedb.dbo.bigtable l where databasename …

3
업데이트 열이 인덱스에없는 업데이트 명령문에 대한 인덱스의 영향
나는 끊임없이 사람들이 그 인덱스는 천천히 말을보고 update, delete하고 insert. 마치 마치 마치 마치 마치 마치 총괄 진술로 사용됩니다. 성능을 개선하기 위해 데이터베이스를 조정하는 동안 논리적으로 저에게 해당 규칙과 모순되는 것처럼 보이는이 상황을 계속 겪고 있습니다. SQL Server에서 대부분의 다른 DBMS를 믿거 나 추정 할 때 지정한 특정 열을 기반으로 …

1
RECOMPILE 쿼리 힌트를 사용하는 경우 쿼리 간 실행 시간의 큰 차이
동일한 SQL Server 2005 인스턴스에서 실행되는 거의 동일한 쿼리가 두 개 있습니다. 첫 번째는 SELECTLINQ에 의해 생성 된 원래 쿼리입니다 (알고 있습니다 ... 나는 응용 프로그램 개발자가 아니라 DBA :). 두 번째 것은 첫 번째와 정확히 동일 OPTION (RECOMPILE)하며 끝에 추가되었습니다 . 다른 것은 바뀌지 않았습니다. 첫 번째는 실행될 때마다 …

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