«optimization» 태그된 질문

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


2
선택 구별 속도를 높이는 방법?
일부 시계열 데이터에 대한 간단한 선택이 있습니다. SELECT DISTINCT user_id FROM events WHERE project_id = 6 AND time > '2015-01-11 8:00:00' AND time < '2015-02-10 8:00:00'; 그리고 112 초가 걸립니다. 쿼리 계획은 다음과 같습니다. http://explain.depesz.com/s/NTyA 내 응용 프로그램은 많은 별개의 연산을 수행해야하며 이와 같은 계산을해야합니다. 이런 종류의 데이터를 얻는 더 …

1
SARGable 술어는 언제 CTE 또는 파생 테이블로 푸시 될 수 있습니까?
샌드백 최고 품질의 블로그 Posts®에서 작업하는 동안, 나는 정말 발견 된 일부 최적화 동작 건너 온 화나는 재미를. 나는 즉시 설명이 없습니다. 적어도 하나도 만족스럽지 않으므로 누군가 똑똑하게 나타날 수 있도록 여기에 넣겠습니다. 따라하고 싶다면 2013 버전의 스택 오버플로 데이터 덤프를 여기 에서 가져올 수 있습니다 . Comments 테이블과 하나의 …

2
300,000 개의 행 테이블에서 실행하는 데 11 분이 걸리는 조인 쿼리
아래 쿼리는 실행하는 데 11 분 이상이 걸립니다. SELECT `c`.*, `e`.`name` AS `employee_name`, `e`.`emp_no`, `d`.`code` AS `department_code`, IF(ew.code IS NOT NULL, ew.code, egw.code) AS shift_code, IF(ew.code IS NOT NULL, ew.time_in_from, egw.time_in_from) AS time_in_from, IF(ew.code IS NOT NULL, ew.time_out_to, egw.time_out_to) AS time_out_to, IF(ew.code IS NOT NULL, ew.next_day, egw.next_day) AS next_day FROM …

3
EXISTS 쿼리가 인덱스 검색 대신 인덱스 스캔을 수행하는 이유는 무엇입니까?
일부 쿼리를 최적화하기 위해 노력하고 있습니다. 아래 쿼리의 경우 SET STATISTICS IO ON; DECLARE @OrderStartDate DATETIME2 = '27 feb 2016'; DECLARE @OrderEndDate DATETIME2 = '28 feb 2016'; SELECT o.strBxOrderNo , o.sintOrderStatusID , o.sintOrderChannelID , o.sintOrderTypeID , o.sdtmOrdCreated , o.sintMarketID , o.strOrderKey , o.strOfferCode , o.strCurrencyCode , o.decBCShipFullPrice , o.decBCShipFinal , …

2
조인 힌트를 추가 할 때 SQL Server 행 예상치가 변경되는 이유는 무엇입니까?
몇 가지 테이블을 조인하고 꽤 나쁘게 수행하는 쿼리가 있습니다. 행 추정이 (1000 번) 떨어져 있고 중첩 루프 조인이 선택되어 여러 테이블 스캔이 발생합니다. 쿼리의 모양은 다음과 같이 매우 간단합니다. SELECT t1.id FROM t1 INNER JOIN t2 ON t1.id = t2.t1_id LEFT OUTER JOIN t3 ON t2.id = t3.t2_id LEFT OUTER …

2
검색 할 수없는 지속 형 계산 열의 인덱스
라는 Address영구 계산 열이있는 이라는 테이블 이 있습니다 Hashkey. 열은 결정적이지만 정확하지는 않습니다. 검색 할 수없는 고유 인덱스가 있습니다. 이 쿼리를 실행하면 기본 키를 반환합니다. SELECT @ADDRESSID= ISNULL(AddressId,0) FROM dbo.[Address] WHERE HashKey = @HashKey 나는이 계획을 얻는다 : 색인을 강요하면이 더 나쁜 계획을 얻습니다. 인덱스와 탐색을 모두 시도하고 강제하면 오류가 …


3
WHERE 조건 및 GROUP BY가 포함 된 SQL 쿼리에 대한 인덱스
WHERE조건이 있는 SQL 쿼리에 사용할 인덱스와 GROUP BY현재 매우 느린 인덱스를 확인하려고합니다 . 내 쿼리 : SELECT group_id FROM counter WHERE ts between timestamp '2014-03-02 00:00:00.0' and timestamp '2014-03-05 12:00:00.0' GROUP BY group_id 테이블에는 현재 32.000.000 개의 행이 있습니다. 시간 프레임을 늘리면 쿼리 실행 시간이 많이 증가합니다. 해당 테이블은 다음과 …

3
CTE 계층 최적화
아래 업데이트 계정 계층 구조를 나타내는 일반적인 계정 / 부모 계정 아키텍처를 가진 계정 테이블이 있습니다 (SQL Server 2012). 계층 구조를 해시하기 위해 CTE를 사용하여 VIEW를 만들었으며 전체적으로 아름답고 의도 한대로 작동합니다. 모든 수준에서 계층 구조를 쿼리하고 분기를 쉽게 볼 수 있습니다. 계층의 함수로 리턴해야하는 하나의 비즈니스 로직 필드가 있습니다. …

2
실행 계획을 사용하여 T-SQL 쿼리를 최적화하는 방법
시행 착오 및 실행 계획을 사용하여 최적화하려고 지난 이틀 동안 보낸 SQL 쿼리가 있지만 아무 소용이 없습니다. 이 일을 용서해주십시오. 그러나 전체 실행 계획을 여기에 게시하겠습니다. 쿼리 및 실행 계획에서 테이블 및 열 이름을 간략하게 만들고 회사의 IP를 보호하기 위해 노력했습니다. 실행 계획은 SQL Sentry Plan Explorer 로 열 수 …

3
OFFSET… FETCH와 이전 스타일의 ROW_NUMBER 체계 사이에 실행 계획 차이가있는 이유는 무엇입니까?
OFFSET ... FETCHSQL Server 2012에 도입 된 새로운 모델은 간단하고 빠른 페이징을 제공합니다. 두 형식이 의미 상 동일하고 매우 일반적이라는 점을 고려하면 어떤 차이가 있습니까? 옵티마이 저가 두 가지를 모두 인식하고 (사소한) 최대한으로 최적화한다고 가정합니다. 다음은 OFFSET ... FETCH비용 추정치에 따라 ~ 2 배 빠른 매우 간단한 경우 입니다. SELECT …

1
클러스터형 인덱스 스캔 실행 횟수가 왜 이렇게 높습니까?
하나의 쿼리 계획이 클러스터 된 인덱스 스캔을 1316 회 실행하고 다른 쿼리는 1 회 실행한다는 점을 제외하고 동일한 쿼리 계획을 생성하는 두 개의 유사한 쿼리가 있습니다. 두 쿼리의 유일한 차이점은 날짜 기준이 다릅니다. 장기 실행 쿼리는 실제로 날짜 기준을 좁히고 더 적은 데이터를 가져옵니다. 두 쿼리 모두에 도움이 될 몇 …

2
최적화 : 변수 선언을 프로 시저의 맨 위로 이동
일부 저장 프로 시저를 최적화하는 동안 DBA와 함께 앉아서 높은 차단 및 / 또는 읽기 / 쓰기 작업을 수행하는 일부 저장 프로 시저를 살펴 보았습니다. DBA가 언급 한 한 가지는 TABLE재 컴파일을 피하기 위해 저장 프로 시저의 맨 위에 모든 변수 (특히 변수)를 선언해야한다는 것입니다. 이것은 내가 처음들은 것이며 우리가 …

2
“tmp 테이블에 복사”가 매우 느림
이것은 내 쿼리 예입니다. SELECT nickname, CASE class_id WHEN 1 THEN 'Druid' WHEN 2 THEN 'Necromancer' WHEN 3 THEN 'Mage' WHEN 4 THEN 'Priest' WHEN 5 THEN 'Warrior' WHEN 6 THEN 'Stalker' WHEN 7 THEN 'Paladin' WHEN 8 THEN 'Psionic' END class_name, ROUND(AVG(level),2) level, ROUND(AVG(tabard_id),2) tabard, CASE rank_id WHEN 1 …

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