>  기사  >  데이터 베이스  >  Oracle 쿼리가 느린 경우 어떻게 해야 합니까?

Oracle 쿼리가 느린 경우 어떻게 해야 합니까?

coldplay.xixi
coldplay.xixi원래의
2020-07-22 16:05:036020검색

Oracle 쿼리 속도를 늦추는 솔루션: 1. 데이터, 로그 및 인덱스를 다른 I 및 O 장치에 배치하여 읽기 속도를 높입니다. 2. 하드웨어를 업그레이드합니다. 3. 네트워크 속도를 높입니다. 4. 테이블을 수직 및 수평으로 분할하고 크기를 줄입니다. 테이블의.

Oracle 쿼리가 느린 경우 어떻게 해야 합니까?

Oracle 쿼리 속도를 늦추는 솔루션:

1. 과거에는 읽기 속도를 높이기 위해 데이터, 로그 및 인덱스를 SQL2000에 넣을 수 있었습니다. 더 이상 지원되지 않습니다. 데이터 볼륨(크기)이 클수록 I/O 개선이 중요합니다.

2. 테이블 크기를 줄이기 위해 테이블을 수직 및 수평으로 분할합니다(sp_spaceuse)

3. 하드웨어 업그레이드

4. . 인덱스를 생성하고 쿼리 조건에 따라 최적화합니다. 인덱스를 생성하고 액세스 방법을 최적화하며 결과 집합의 데이터 양을 제한합니다. 채우기 비율은 적절해야 합니다. 기본값인 0을 사용하는 것이 가장 좋습니다. 인덱스는 가능한 한 작아야 합니다. 인덱스를 생성하려면 바이트 수가 적은 열을 사용하는 것이 좋습니다(인덱스 생성 참조).

5. 네트워크 속도를 높입니다.

6. Windows 2000 및 SQL Server 2000은 4-8G의 메모리를 지원할 수 있습니다. 가상 메모리 구성: 가상 메모리 크기는 컴퓨터에서 동시에 실행되는 서비스에 따라 구성되어야 합니다. Microsoft SQL Server® 2000을 실행할 때 가상 메모리 크기를 컴퓨터에 설치된 실제 메모리의 1.5배로 설정하는 것을 고려하십시오. 전체 텍스트 검색 기능을 추가로 설치하고 Microsoft Search 서비스를 실행하여 전체 텍스트 인덱싱 및 쿼리를 수행하려는 경우 가상 메모리 크기를 컴퓨터에 설치된 실제 메모리의 3배 이상으로 구성하는 것이 좋습니다. SQL Server 최대 서버 메모리 서버 구성 옵션을 실제 메모리의 1.5배(가상 메모리 크기 설정의 절반)로 구성합니다.

7. 서버 CPU 수를 늘리십시오. 단, 병렬 처리와 직렬 처리에는 메모리와 같은 더 많은 리소스가 필요하다는 점을 이해해야 합니다. 병렬 또는 직렬 처리를 사용할지 여부는 MsSQL에 의해 자동으로 평가됩니다. 단일 작업은 프로세서에서 실행할 수 있는 여러 작업으로 구분됩니다. 예를 들어 지연된 쿼리의 정렬, 연결, 검색 및 GROUP BY 절이 동시에 실행되며, SQL SERVER는 시스템 부하에 따라 최적의 병렬 수준을 결정합니다. 많은 양의 CPU가 필요한 복잡한 쿼리가 가장 적합합니다. 병렬 처리를 위해. 그러나 업데이트 작업인 Update, Insert 및 Delete는 병렬로 처리될 수 없습니다.

8. like를 사용하여 쿼리하는 경우 단순히 인덱스를 사용하는 것은 작동하지 않지만 전체 텍스트 인덱싱은 공간을 소비합니다. like 'a%' '%a' 같은 인덱스 사용 '%a%' 같은 인덱스를 사용하지 않고 쿼리할 경우 쿼리 시간은 필드 값의 전체 길이에 비례하므로 CHAR 타입은 사용할 수 없고 VARCHAR 타입은 사용할 수 없다. 값이 매우 긴 필드에 대한 전체 텍스트 인덱스를 구축합니다.

9. DB 서버와 APPLication 서버의 분리, OLTP와 OLAP의 분리

10. 분산 파티션 뷰를 사용하여 데이터베이스 서버 통합을 구현할 수 있습니다. 페더레이션은 별도로 관리되지만 함께 작동하여 시스템의 처리 로드를 공유하는 서버 그룹입니다. 데이터베이스 서버 컴플렉스를 형성하기 위해 데이터를 분할하는 이러한 메커니즘은 서버 세트를 확장하여 대규모 다중 계층 웹 사이트의 처리 요구 사항을 지원할 수 있습니다. 자세한 내용은 페더레이션된 데이터베이스 서버 설계를 참조하세요. (SQL 도움말 파일 'Partitioned View' 참조)

a. 분할 뷰를 구현하기 전에 테이블을 수평으로 분할해야 합니다.

b 멤버 테이블을 생성한 후 각 멤버 서버에 분산 분할 뷰를 정의합니다. 보기에는 동일한 이름이 있습니다. 이러한 방식으로 분산 분할 뷰 이름을 참조하는 쿼리는 모든 구성원 서버에서 실행될 수 있습니다. 시스템은 각 구성원 서버에 원본 테이블의 복사본이 있는 것처럼 작동하지만 실제로는 각 서버에 하나의 구성원 테이블과 하나의 분산 분할 뷰만 있습니다. 데이터의 위치는 애플리케이션에 투명합니다.

11. DBCC REINDEX, DBCC INDEXDEFRAG, 축소 데이터 및 로그 DBCC SHRINKDB, DBCC SHRINKFILE을 다시 작성합니다. 대규모 데이터베이스의 경우 자동 데이터베이스 증가를 설정하지 마세요. 서버 성능이 저하됩니다.

관련 학습 권장 사항: oracle 데이터베이스 학습 튜토리얼

위 내용은 Oracle 쿼리가 느린 경우 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.