저는 현재 Java/DB2 백엔드가있는 웹 응용 프로그램에서 일하는 주니어 개발자이며 매우 천천히 실행되는 SQL 쿼리가 있습니다. 데이터베이스가 현재 최적화되어 있지 않으므로 개선의 여지가 있습니다. 문제는 내가이 경험이 없으며 아무도 나를 도울 수 없다는 것입니다. 복수 선택 조건을 기반으로 선택 쿼리를 최적화하십시오.
SomeTableName
MyPkey
ColOne
ColTwo
ColThree
ColFour
ColFive
나는 이런 쿼리에 대한 데이터베이스를 최적화하는 방법을 알아 내려고 노력했다 :
SELECT * FROM SomeTableName WHERE ColOne = 'some value'
SELECT * FROM SomeTableName WHERE ColOne = 'some value' AND ColTwo = 'another'
SELECT * FROM SomeTableName WHERE ColFive = 11 AND ColThree = 'hello world'
SELECT * FROM SomeTableName WHERE ColOne = 'hi' AND ColTwo = 'val1' AND ColThree = 'val2' AND ColFour = 'val3' AND ColFive = 'val4'
내가의 SELECT
문은 다른 열 조합이 WHERE
조건을 가지고있다 묘사하기 위해 노력하고있어 그리고 가치와 나는 이런 식으로 쿼리를 최적화하는 방법을 모르겠습니다.
어떤 조언이 필요합니까?
EDIT : DB2가 자체 최적화를 추가했는지는 모르지만 모든 열에는 인덱스가 설정되어 있지 않습니다.
처음에는 Java 또는 DB2에 대해 잘 모르기는하지만 테이블 정의가 필요합니다. 따라서 세부 사항을 도울 수는 없습니다. 대부분의 SQL 상황에서 이와 같은 쿼리는 적절한 인덱스가 있는지 확인하여 크게 향상시킬 수 있습니다. – Henry
데이터베이스에 인덱스가 없습니다. 이전에 하나를 만들려고했지만 어떻게 설정해야할지 생각했습니다 (즉, 열당 하나의 인덱스를 사용해야합니까? 아니면 하나의 인덱스에 여러 개의 열을 사용해야합니까?) –
당신이 할 수있는 가장 단순한 작업은 DB. 속도가 느린 경우 인덱스를 테이블에 추가해야합니다. 그들 없이는 매번 전체 테이블 스캔을 수행하고 있습니다. –