«query-performance» 태그된 질문

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

4
공간 인덱스가 "범위 별 순서별"쿼리를 도울 수 있습니까?
R- 트리 / 공간 인덱스에 대한 좋은 지원이 있기 때문에 특히 Postgres에 대해이 질문을하십시오. 단어와 그 빈도의 트리 구조 (Nested Set 모델)가있는 다음 표가 있습니다. lexikon ------- _id integer PRIMARY KEY word text frequency integer lset integer UNIQUE KEY rset integer UNIQUE KEY 그리고 쿼리 : SELECT word FROM lexikon …

2
집계에 인덱싱 된 뷰 사용-너무 좋지 않습니까?
우리는 상당히 많은 레코드 수 (10 ~ 2 천만 행)를 가진 데이터웨어 하우스를 가지고 있으며 특정 날짜 사이의 레코드를 계산하거나 특정 플래그로 레코드를 계산하는 쿼리를 실행하는 경우가 있습니다. SELECT f.IsFoo, COUNT(*) AS WidgetCount FROM Widgets AS w JOIN Flags AS f ON f.FlagId = w.FlagId WHERE w.Date >= @startDate GROUP …

2
범위 유형에서 정확한 동등성으로 인해 잘못된 쿼리 계획을 처리하는 방법은 무엇입니까?
tstzrange변수 에서 정확한 동등성이 필요한 업데이트를 수행하고 있습니다. ~ 1M 행이 수정되고 쿼리는 ~ 13 분이 걸립니다. 의 결과는 여기 에서 EXPLAIN ANALYZE볼 수 있으며 실제 결과는 쿼리 플래너가 추정 한 결과와 매우 다릅니다. 문제는 인덱스 스캔시 단일 행이 리턴 될 것으로 예상한다는 것입니다.t_range 이것은 범위 유형에 대한 통계가 다른 …

3
WHERE 절을 추가하면 뷰가 최적화됩니까?
뷰 내부 또는 외부에서 뷰를 필터링하면 차이가 있습니까? 예를 들어이 두 쿼리간에 차이점이 있습니까? SELECT Id FROM MyTable WHERE SomeColumn = 1 또는 SELECT Id FROM MyView WHERE SomeColumn = 1 그리고 MyView다음과 같이 정의됩니다 SELECT Id, SomeColumn FROM MyTable 소스 테이블이 링크 된 서버에있는 경우 답변이 다른가요? 연결된 서버에서 …

1
SQL Server 2014 : 일관성없는 자체 조인 카디널리티 추정에 대한 설명이 있습니까?
SQL Server 2014에서 다음 쿼리 계획을 고려하십시오. 쿼리 계획에서 자체 조인 ar.fId = ar.fId은 1 행으로 추정됩니다. 그러나, 이것은 논리적으로 일관성이 추정은 다음과 같습니다 ar있다 20,608행의 한 별개의 값 fId(정확하게 통계에 반영을). 따라서이 조인은 행 ( ~424MM행) 의 전체 교차 곱을 생성하여 몇 시간 동안 쿼리를 실행합니다. SQL Server가 통계와 …

2
많은 수의 행을 삽입하는 가장 빠른 방법은 무엇입니까?
나는이 준비 테이블에서 파일을 준비 테이블에로드하는 데이터베이스가 있는데, 외래 키를 해결하기 위해 1-2 조인이 있고이 행을 최종 테이블에 삽입합니다 (한 달에 파티션이 있음). 3 개월 동안 약 34 억 개의 행이 있습니다. 이러한 행을 최종 테이블로 스테이징하는 가장 빠른 방법은 무엇입니까? SSIS 데이터 흐름 태스크 (보기를 소스로 사용하고 빠른로드 활성화 …

3
저장 프로 시저와 인라인 SQL
응용 프로그램의 인라인 SQL보다 실행 경로를 통해 저장 프로 시저가 더 효율적이라는 것을 알고 있습니다. 그러나 눌 렸을 때 나는 왜 그런지 잘 알지 못한다. 이에 대한 기술적 추론을 알고 싶습니다 (나중에 누군가에게 설명 할 수있는 방식으로). 누구든지 좋은 답변을 공식화하도록 도울 수 있습니까?

1
인덱스 : 노드 수가 동일한 경우 정수 대 문자열 성능
PostgreSQL (9.4) 데이터베이스를 사용하여 Ruby on Rails에서 응용 프로그램을 개발 중입니다. 내 유스 케이스의 경우 응용 프로그램의 전체 지점이 모델에서 매우 특정한 속성을 검색하므로 테이블의 열이 매우 자주 조회됩니다. 내가 현재 사용할지 여부를 결정하고 integer(예를 들어, 일반적인 스트링 타입 사용 단순히 유형을하거나 character varying(255), 레일의 기본이다 나는 확실히 성능 차이가 …

5
두 날짜 열에 대한 SARGable WHERE 절
SARGability에 대한 흥미로운 질문이 있습니다. 이 경우 두 날짜 열의 차이점에 대한 술어를 사용하는 것입니다. 설정은 다음과 같습니다. USE [tempdb] SET NOCOUNT ON IF OBJECT_ID('tempdb..#sargme') IS NOT NULL BEGIN DROP TABLE #sargme END SELECT TOP 1000 IDENTITY (BIGINT, 1,1) AS ID, CAST(DATEADD(DAY, [m].[severity] * -1, GETDATE()) AS DATE) AS [DateCol1], …

1
탐색하고 파티션 된 테이블에서 스캔해야합니다…
Itzik Ben-Gan의 PCMag에서이 기사를 읽었습니다 . 파트 I을 찾아서 스캔해야 함 : 옵티마이 저가 최적화하지 않고 파트 II를 탐색 할 때 : 오름차순 키 현재 모든 파티션 된 테이블에 "Grouped Max"문제가 있습니다. Itzik Ben-Gan이 max (ID)를 얻기 위해 제공 한 트릭을 사용 하지만 때로는 실행되지 않습니다. DECLARE @MaxIDPartitionTable BIGINT SELECT …

2
LIKE는 색인을 사용하고 CHARINDEX는 사용하지 않습니까?
이 질문은 나의 오래된 질문 과 관련이 있습니다. 아래 쿼리는 실행하는 데 10-15 초가 걸렸습니다. SELECT [customer].[Customer name],[customer].[Sl_No],[customer].[Id] FROM [company].dbo.[customer] WHERE (Charindex('123456789',CAST([company].dbo.[customer].[Phone no] AS VARCHAR(MAX)))>0) 일부 기사에서 나는 사용하는 것을보고 CAST및 CHARINDEX색인에서 혜택을받지 않습니다. 사용하는 것이 LIKE '%abc%'색인 생성의 이점을 얻지 못한다고 말하는 기사도 있습니다 LIKE 'abc%'. http://bytes.com/topic/sql-server/answers/81467-using-charindex-vs-like-where /programming/803783/sql-server-index-any-improvement-for 같은 …

1
반복없는 조합에 대한 SQL 쿼리
함수에 사용되거나 함수로 사용할 수 있고 n 값의 모든 조합을 검색하는 쿼리가 필요합니다. 그리고 k = 1..n 인 길이 k의 모든 조합이 필요합니다. 확장 된 샘플 입력 및 결과이므로 입력에는 2 대신 3 개의 값이 있지만 입력 값의 수는 1에서 n까지 다양합니다. 예 : 입력 : 여러 행의 한 열에 …

1
해시 키 프로브 및 잔차
다음과 같은 쿼리가 있다고 가정 해보십시오. select a.*,b.* from a join b on a.col1=b.col1 and len(a.col1)=10 위 쿼리에서 해시 조인을 사용하고 잔차가 있다고 가정하면 프로브 키는 col1이고 잔차는입니다 len(a.col1)=10. 그러나 다른 예를 거치면서 프로브와 잔차가 모두 같은 열임을 알 수 있습니다. 아래는 내가 말하려는 것에 대한 설명입니다. 질문: select * …

4
"때때로"느린 쿼리 진단에 대한 조언
커버링 인덱스를 통해 인덱싱 된 뷰에서 결과를 반환하는 저장 프로 시저가 있습니다. 일반적으로 빠르게 (~ 10ms) 실행되며 때로는 최대 8 초까지 실행될 수 있습니다. 다음은 임의 실행의 예입니다 (참고 : 속도는 느리지 않지만 쿼리 텍스트는 전달 된 값과 동일합니다). declare @p2 dbo.IdentityType insert into @p2 values(5710955) insert into @p2 values(5710896) …

2
연결 연산자가 입력보다 적은 행을 추정하는 이유는 무엇입니까?
다음 쿼리 계획 스 니펫에서 Concatenation연산자 ~4.3 billion rows의 행 추정값은 두 입력에 대한 행 추정값의 합 이어야합니다 . 그러나 추정치 ~238 million rows가 산출되어 수백 GB의 데이터를 tempdb에 유출하는 차선책 Sort/ Stream Aggregate전략으로 이어집니다. 이 경우 논리적으로 일관된 견적은을 생성 Hash Aggregate하고 유출을 제거하며 쿼리 성능을 크게 향상 시켰습니다. …

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