«query-performance» 태그된 질문

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

2
날짜 범위를 검색하는 가장 효율적인 방법
이와 같은 테이블 구조로 날짜 범위를 검색하는 가장 효율적인 방법은 무엇입니까? create table SomeDateTable ( id int identity(1, 1) not null, StartDate datetime not null, EndDate datetime not null ) go StartDate와에 대한 범위를 원한다고 가정합니다 EndDate. 그래서 다른 말로하면이 StartDate사이에 폭포 @StartDateBegin와 @StartDateEnd,와 EndDate사이에 빠진다 @EndDateBegin하고 @EndDateEnd무언가를 수행합니다. 아마 …

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 내 응용 프로그램은 많은 별개의 연산을 수행해야하며 이와 같은 계산을해야합니다. 이런 종류의 데이터를 얻는 더 …

3
성능을 저하시키는 키 조회 (Clustered) 연산자 제거
실행 계획에서 키 조회 (클러스터) 연산자를 제거하려면 어떻게해야합니까? 테이블 tblQuotes에는 이미 클러스터형 인덱스 (on QuoteID)와 27 개의 비 클러스터형 인덱스가 있으므로 더 이상 만들지 않습니다. 클러스터 된 인덱스 열 QuoteID을 쿼리에 넣었을 때 도움이되기를 원했지만 불행히도 여전히 동일합니다. 실행 계획은 여기에 있습니다 . 또는보십시오 : 키 조회 연산자는 다음과 같이 …

1
SQL Server-- 저장 프로 시저 및 계획 캐시의 논리
SQL Server 2012 및 2016 표준 : if-else매개 변수 값에 따라 두 가지 코드 분기 중 하나를 실행하기 위해 저장 프로 시저 에 논리를 배치 하면 엔진이 최신 버전을 캐시합니까? 그리고 다음 실행에서 매개 변수의 값이 변경되면 코드의 다른 분기를 실행해야하기 때문에 저장 프로 시저를 다시 컴파일하고 다시 캐시 합니까? …

1
날짜 비교로 하위 쿼리 수행 불량
하위 쿼리를 사용하여 일치하는 필드가있는 모든 이전 레코드의 총 개수를 찾는 경우 성능이 50k 레코드만큼 적은 테이블에서 끔찍합니다. 하위 쿼리가 없으면 쿼리는 몇 밀리 초 안에 실행됩니다. 하위 쿼리를 사용하면 실행 시간이 1 분 이상입니다. 이 쿼리의 결과는 다음과 같아야합니다. 지정된 기간 내에 해당 레코드 만 포함하십시오. 날짜 범위에 관계없이 …

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 , …

1
sp_cursoropen 및 병렬 처리
머리를 get 수없는 쿼리로 성능 문제가 발생했습니다. 커서 정의에서 쿼리를 가져 왔습니다. 이 쿼리는 실행하는 데 몇 초가 걸립니다 SELECT A.JOBTYPE FROM PRODROUTEJOB A WHERE ((A.DATAAREAID=N'IW') AND ((A.CALCTIMEHOURS<>0) AND (A.JOBTYPE<>3))) AND EXISTS (SELECT 'X' FROM PRODROUTE B WHERE ((B.DATAAREAID=N'IW') AND (((((B.PRODID=A.PRODID) AND ((B.PROPERTYID=N'PR1526157') OR (B.PRODID=N'PR1526157'))) AND (B.OPRNUM=A.OPRNUM)) AND (B.OPRPRIORITY=A.OPRPRIORITY)) AND …

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 개의 행이 있습니다. 시간 프레임을 늘리면 쿼리 실행 시간이 많이 증가합니다. 해당 테이블은 다음과 …

1
SQL Server는 술어의 상관 관계를 어떻게 알 수 있습니까?
카디널리티 추정이 좋지 않은 (간단한 인덱싱, 최신 통계 등) SQL 쿼리를 진단하는 동안 쿼리 계획이 좋지 않은 경우 관련 KB 문서를 찾았습니다. FIX : 쿼리 실행시 성능 저하 SQL Server 2008 또는 SQL Server 2008 R2 또는 SQL Server 2012의 상관 AND 술어를 포함합니다. KB 기사에서 "상관 된"(예 : 술어 …

5
큰 테이블에서 LEFT JOIN을 사용하여 매우 느린 SELECT를 최적화하는 방법
나는 인터넷 검색, 자체 교육 및 몇 시간 동안 해결책을 찾고 있었지만 운이 없었습니다. 나는 여기서 몇 가지 비슷한 질문을 찾았지만이 경우는 아닙니다. 내 테이블 : 인원 (~ 10M 행) 속성 (위치, 연령, ...) 개인과 속성 사이의 링크 (M : M) (~ 4 천만 행) 풀 덤프 ~ 280MB 상황 …

2
1 초 미만 동안 발생하는 차단을 추적하는 방법-SQL Server
1 초 이내에 발생하는 차단 문제를 해결하려고합니다. OLTP 애플리케이션은 매우 민감하며 합의 된 SLA에 따라 일부 트랜잭션에 대해 200ms 미만의 응답 시간을 가져야합니다. 업데이트에서 배치 크기를 줄이면 해결할 수있는 새로운 코드 릴리스에서 잠금 에스컬레이션 문제가 발생했습니다. 배치 크기가 작더라도 새 sp가 OLTP 트랜잭션이 업데이트하는 동일한 행을 차단하고 있다고 의심합니다. 차단 …

2
PostgreSQL TRIGGER 확장
Postgres는 메커니즘 스케일을 어떻게 트리거합니까? 대규모 PostgreSQL 설치가 있으며 로그 테이블과 TRIGGER를 사용하여 이벤트 기반 시스템을 구현하려고합니다. 기본적으로 우리는 UPDATE / INSERT / DELETE 작업에 대해 통지하고자하는 각 테이블에 대해 TRIGGER를 작성하려고합니다. 이 트리거가 발생하면 단순히 새로운 행 (이벤트 인코딩)을 로그 테이블에 추가하여 외부 서비스에서 폴링 할 함수를 실행합니다. Postgres …

1
IN을 피해야합니까?
일부 SQL Server 개발자들 사이에서는 매우 NOT IN느리다는 믿음이 널리 퍼져 있으며 동일한 결과를 반환하지만 "사악한"키워드를 사용하지 않도록 쿼리를 다시 작성해야합니다. ( 예 ). 그것에 진실이 있습니까? 예를 들어, 사용하여 쿼리를 일으키는 SQL Server의 일부 알려진 버그 (버전?)가되어 NOT IN사용하는 동등한 쿼리보다 더 나쁜 실행 계획을 가지고 LEFT JOIN결합 NULL수표 …

3
IN ()을 사용하여 쿼리 성능 향상
다음 SQL 쿼리가 있습니다. SELECT Event.ID, Event.IATA, Device.Name, EventType.Description, Event.Data1, Event.Data2 Event.PLCTimeStamp, Event.EventTypeID FROM Event INNER JOIN EventType ON EventType.ID = Event.EventTypeID INNER JOIN Device ON Device.ID = Event.DeviceID WHERE Event.EventTypeID IN (3, 30, 40, 41, 42, 46, 49, 50) AND Event.PLCTimeStamp BETWEEN '2011-01-28' AND '2011-01-29' AND Event.IATA LIKE '%0005836217%' …

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