데이터 베이스 MySQL 튜토리얼 SQL 语句优化方法30例_MySQL

SQL 语句优化方法30例_MySQL

Jun 01, 2016 pm 01:19 PM
처리량 의지

bitsCN.com 1. /*+ALL_ROWS*/
表明对语句块选择基于开销的优化方法,并获得最佳吞吐量,使资源消耗最小化.
例如:
SELECT /*+ALL+_ROWS*/ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO='SCOTT';
2. /*+FIRST_ROWS*/
表明对语句块选择基于开销的优化方法,并获得最佳响应时间,使资源消耗最小化.
例如:
SELECT /*+FIRST_ROWS*/ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO='SCOTT';

3. /*+CHOOSE*/
表明如果数据字典中有访问表的统计信息,将基于开销的优化方法,并获得最佳的吞吐量;
表明如果数据字典中没有访问表的统计信息,将基于规则开销的优化方法;
例如:
SELECT /*+CHOOSE*/ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO='SCOTT';

4. /*+RULE*/
表明对语句块选择基于规则的优化方法.
例如:
SELECT /*+ RULE */ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO='SCOTT';

5. /*+FULL(TABLE)*/
表明对表选择全局扫描的方法.
例如:
SELECT /*+FULL(A)*/ EMP_NO,EMP_NAM FROM BSEMPMS A WHERE EMP_NO='SCOTT';

6. /*+ROWID(TABLE)*/
提示明确表明对指定表根据ROWID进行访问.
例如:
SELECT /*+ROWID(BSEMPMS)*/ * FROM BSEMPMS WHERE ROWID>='AAAAAAAAAAAAAA'
AND EMP_NO='SCOTT';

7. /*+CLUSTER(TABLE)*/
提示明确表明对指定表选择簇扫描的访问方法,它只对簇对象有效.
例如:
SELECT /*+CLUSTER */ BSEMPMS.EMP_NO,DPT_NO FROM BSEMPMS,BSDPTMS
WHERE DPT_NO='TEC304' AND BSEMPMS.DPT_NO=BSDPTMS.DPT_NO;

8. /*+INDEX(TABLE INDEX_NAME)*/
表明对表选择索引的扫描方法.
例如:
SELECT /*+INDEX(BSEMPMS SEX_INDEX) USE SEX_INDEX BECAUSE THERE ARE FEWMALE BSEMPMS */ FROM BSEMPMS WHERE SEX='M';

9. /*+INDEX_ASC(TABLE INDEX_NAME)*/
表明对表选择索引升序的扫描方法.
例如:
SELECT /*+INDEX_ASC(BSEMPMS PK_BSEMPMS) */ FROM BSEMPMS WHERE DPT_NO='SCOTT';

10. /*+INDEX_COMBINE*/
为指定表选择位图访问路经,如果INDEX_COMBINE中没有提供作为参数的索引,将选择出位图索引的布尔组合方式.
例如:
SELECT /*+INDEX_COMBINE(BSEMPMS SAL_BMI HIREDATE_BMI)*/ * FROM BSEMPMS
WHERE SAL
11. /*+INDEX_JOIN(TABLE INDEX_NAME)*/
提示明确命令优化器使用索引作为访问路径.
例如:
SELECT /*+INDEX_JOIN(BSEMPMS SAL_HMI HIREDATE_BMI)*/ SAL,HIREDATE
FROM BSEMPMS WHERE SAL
12. /*+INDEX_DESC(TABLE INDEX_NAME)*/
表明对表选择索引降序的扫描方法.
例如:
SELECT /*+INDEX_DESC(BSEMPMS PK_BSEMPMS) */ FROM BSEMPMS WHERE DPT_NO='SCOTT';

13. /*+INDEX_FFS(TABLE INDEX_NAME)*/
对指定的表执行快速全索引扫描,而不是全表扫描的办法.
例如:
SELECT /*+INDEX_FFS(BSEMPMS IN_EMPNAM)*/ * FROM BSEMPMS WHERE DPT_NO='TEC305';

14. /*+ADD_EQUAL TABLE INDEX_NAM1,INDEX_NAM2,...*/
提示明确进行执行规划的选择,将几个单列索引的扫描合起来.
例如:
SELECT /*+INDEX_FFS(BSEMPMS IN_DPTNO,IN_EMPNO,IN_SEX)*/ * FROM BSEMPMS WHERE EMP_NO='SCOTT' AND DPT_NO='TDC306';

15. /*+USE_CONCAT*/
对查询中的WHERE后面的OR条件进行转换为UNION ALL的组合查询.
例如:
SELECT /*+USE_CONCAT*/ * FROM BSEMPMS WHERE DPT_NO='TDC506' AND SEX='M';

16. /*+NO_EXPAND*/
对于WHERE后面的OR 或者IN-LIST的查询语句,NO_EXPAND将阻止其基于优化器对其进行扩展.
例如:
SELECT /*+NO_EXPAND*/ * FROM BSEMPMS WHERE DPT_NO='TDC506' AND SEX='M';

17. /*+NOWRITE*/
禁止对查询块的查询重写操作.

18. /*+REWRITE*/
可以将视图作为参数.

19. /*+MERGE(TABLE)*/
能够对视图的各个查询进行相应的合并.
例如:
SELECT /*+MERGE(V) */ A.EMP_NO,A.EMP_NAM,B.DPT_NO FROM BSEMPMS A (SELET DPT_NO
,AVG(SAL) AS AVG_SAL FROM BSEMPMS B GROUP BY DPT_NO) V WHERE A.DPT_NO=V.DPT_NO
AND A.SAL>V.AVG_SAL;

20. /*+NO_MERGE(TABLE)*/
对于有可合并的视图不再合并.
例如:
SELECT /*+NO_MERGE(V) */ A.EMP_NO,A.EMP_NAM,B.DPT_NO FROM BSEMPMS A (SELECT DPT_NO,AVG(SAL) AS AVG_SAL FROM BSEMPMS B GROUP BY DPT_NO) V WHERE A.DPT_NO=V.DPT_NO AND A.SAL>V.AVG_SAL;

21. /*+ORDERED*/
根据表出现在FROM中的顺序,ORDERED使ORACLE依此顺序对其连接.
例如:
SELECT /*+ORDERED*/ A.COL1,B.COL2,C.COL3 FROM TABLE1 A,TABLE2 B,TABLE3 C WHERE A.COL1=B.COL1 AND B.COL1=C.COL1;

22. /*+USE_NL(TABLE)*/
将指定表与嵌套的连接的行源进行连接,并把指定表作为内部表.
例如:
SELECT /*+ORDERED USE_NL(BSEMPMS)*/ BSDPTMS.DPT_NO,BSEMPMS.EMP_NO,BSEMPMS.EMP_NAM FROM BSEMPMS,BSDPTMS WHERE BSEMPMS.DPT_NO=BSDPTMS.DPT_NO;

23. /*+USE_MERGE(TABLE)*/
将指定的表与其他行源通过合并排序连接方式连接起来.
例如:
SELECT /*+USE_MERGE(BSEMPMS,BSDPTMS)*/ * FROM BSEMPMS,BSDPTMS WHERE BSEMPMS.DPT_NO=BSDPTMS.DPT_NO;

24. /*+USE_HASH(TABLE)*/
将指定的表与其他行源通过哈希连接方式连接起来.
例如:
SELECT /*+USE_HASH(BSEMPMS,BSDPTMS)*/ * FROM BSEMPMS,BSDPTMS WHERE BSEMPMS.DPT_NO=BSDPTMS.DPT_NO;

25. /*+DRIVING_SITE(TABLE)*/
强制与ORACLE所选择的位置不同的表进行查询执行.
例如:
SELECT /*+DRIVING_SITE(DEPT)*/ * FROM BSEMPMS,DEPT@BSDPTMS WHERE BSEMPMS.DPT_NO=DEPT.DPT_NO;

26. /*+LEADING(TABLE)*/
将指定的表作为连接次序中的首表.

27. /*+CACHE(TABLE)*/
当进行全表扫描时,CACHE提示能够将表的检索块放置在缓冲区缓存中最近最少列表LRU的最近使用端
例如:
SELECT /*+FULL(BSEMPMS) CAHE(BSEMPMS) */ EMP_NAM FROM BSEMPMS;

28. /*+NOCACHE(TABLE)*/
当进行全表扫描时,CACHE提示能够将表的检索块放置在缓冲区缓存中最近最少列表LRU的最近使用端
例如:
SELECT /*+FULL(BSEMPMS) NOCAHE(BSEMPMS) */ EMP_NAM FROM BSEMPMS;

29. /*+APPEND*/
直接插入到表的最后,可以提高速度.
insert /*+append*/ into test1 select * from test4 ;

30. /*+NOAPPEND*/
通过在插入语句生存期内停止并行模式来启动常规插入.
insert /*+noappend*/ into test1 select * from test4 ;bitsCN.com

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

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

115 네트워크 디스크에서 리소스를 찾는 방법 115 네트워크 디스크에서 리소스를 찾는 방법 Feb 23, 2024 pm 05:10 PM

115 네트워크 디스크에는 많은 리소스가 있을 것인데 리소스를 찾는 방법은 무엇입니까? 사용자는 소프트웨어에서 필요한 리소스를 검색한 다음 다운로드 인터페이스로 들어간 다음 네트워크 디스크에 저장하도록 선택할 수 있습니다. 115 네트워크 디스크에서 리소스를 찾는 방법에 대한 이 소개는 구체적인 내용을 알려줄 수 있습니다. 다음은 자세한 소개입니다. 와서 살펴보세요. 115 네트워크 디스크에서 리소스를 찾는 방법 답변: 소프트웨어에서 콘텐츠를 검색한 다음 클릭하여 네트워크 디스크에 저장합니다. 자세한 소개: 1. 먼저 앱에서 원하는 리소스를 입력하세요. 2. 그러면 나타나는 키워드 링크를 클릭하세요. 3. 그런 다음 다운로드 인터페이스로 들어갑니다. 4. 내부 네트워크 디스크에 저장을 클릭합니다.

Han Xiaoquan은 왜 갑자기 자원이 없습니까? Han Xiaoquan은 왜 갑자기 자원이 없습니까? Feb 24, 2024 pm 03:22 PM

한샤오취안은 한국 드라마를 많이 볼 수 있는 소프트웨어인데 왜 갑자기 리소스가 없나요? 이 소프트웨어는 네트워크 문제, 버전 문제 또는 저작권 문제로 인해 리소스가 없을 수 있습니다. Han Xiaoquan이 갑자기 자원이 없는 이유에 대한 이 기사는 구체적인 내용을 알려줄 수 있습니다. 다음은 자세한 소개입니다. 와서 살펴보세요. Han Xiaoquan에 갑자기 리소스가 없는 이유는 무엇입니까? 답변: 네트워크 문제, 버전 문제 및 저작권 문제로 인해 자세한 소개: 1. 네트워크 문제 해결 방법: 다른 네트워크를 선택한 다음 소프트웨어에 다시 로그인하여 시도해 볼 수 있습니다. . 2. 버전 문제 해결: 사용자는 공식 웹사이트에서 이 소프트웨어의 최신 버전을 다운로드할 수 있습니다. 3. 저작권 문제 해결: 저작권 문제로 인해 일부 한국 드라마가 목록에서 제거되었습니다. 다른 한국 드라마를 선택하여 시청할 수 있습니다.

Windows 11 안전 모드에서 Explorer.exe 충돌이 더 이상 발생하지 않습니다. Windows 11 안전 모드에서 Explorer.exe 충돌이 더 이상 발생하지 않습니다. Aug 30, 2023 pm 11:09 PM

Windows 11의 안전 모드에서 Explorer.exe가 충돌합니까? 더 이상은 아닙니다. Microsoft는 방금 Dev 채널에 대한 새 패치를 출시했습니다. 이 릴리스에는 새로운 기능이 없지만 Explorer.exe가 안전 모드에서 충돌하는 성가신 버그를 포함하여 Windows 참가자 프로그램에 많은 수정 및 개선 사항이 적용되고 있습니다. 이제 적어도 Windows Insider 프로그램에서는 작별 인사를 할 수 있습니다. 그러나 이러한 모든 업데이트와 마찬가지로 Windows 서버에도 적용될 예정입니다. Explorer.exe가 안전 모드에서 작동하지 않는 문제를 해결했습니다. 그러나 파일 탐색기에는 몇 가지 다른 수정 사항이 있으므로 Microsoft는 이를 작동시키려고 합니다.

Dying Light 리소스를 무한정 새로 고치는 방법 Dying Light 리소스를 무한정 새로 고치는 방법 Jan 24, 2024 pm 04:03 PM

Dying Light 게임에서는 자원 부족으로 인해 많은 플레이어가 초기 단계에서 수많은 좀비에 둘러싸여 있을 수 있습니다. 때때로 그들은 갇힌 방랑자를 구출하기 위해 위험을 감수할 수도 있으며, 이 방랑자는 또한 완료 후 풍부한 보상을 받게 될 몇 가지 부차적인 작업을 제공할 수도 있습니다. 다잉라이트 자원 무제한 획득 먼저 구호 꾸러미를 찾아 창고에 넣어두세요. [인벤토리] 홈페이지에서 수량이 많은 아이템을 선택하고, 선택되면 마우스 왼쪽 버튼을 클릭하세요. 2. 그런 다음 마우스를 움직이지 않고 빠르게 F+A를 누르세요. 약 0.25초 후에 창고 페이지가 나올 것 같으면 마우스 왼쪽, 오른쪽 버튼을 누르세요. .마우스를 움직이지 말고 길게 누르지 마세요. 아이템을 저장하라는 메시지가 뜨고 성공합니다. 3마지막으로 창고에서 [재난 패키지]를 찾으면 다음 메시지가 표시됩니다.

Go 언어 그래픽 인터페이스 개발: 기존 도구 및 리소스 탐색 Go 언어 그래픽 인터페이스 개발: 기존 도구 및 리소스 탐색 Mar 23, 2024 pm 03:06 PM

기본 원칙: Go 언어 자체는 그래픽 인터페이스 개발을 직접 지원하지 않지만, 다른 언어의 라이브러리를 호출하거나 기존 도구를 사용하여 그래픽 인터페이스 개발을 달성할 수 있습니다. 이 기사에서는 독자가 그래픽 인터페이스 개발에 Go 언어를 사용할 가능성을 더 잘 탐색할 수 있도록 일반적으로 사용되는 몇 가지 도구와 리소스를 소개합니다. 1. Go 언어 그래픽 인터페이스 개발 현황 Go 언어는 효율적이고 간결한 프로그래밍 언어로 다양한 응용 분야에 적합하지만 그래픽 인터페이스 개발에는 적합하지 않습니다. Go 언어의 성능 및 동시성 기능으로 인해 많은 개발자가

스토리지 엔진 처리량 개선: MySQL의 MaxScale 애플리케이션 사례 스토리지 엔진 처리량 개선: MySQL의 MaxScale 애플리케이션 사례 Jul 27, 2023 pm 10:05 PM

스토리지 엔진의 처리량 향상: MySQL의 MaxScale 적용 사례 소개: 현재 빅데이터 및 높은 동시성 환경에서 데이터베이스 처리량을 향상시키는 방법은 많은 기업과 개발자가 직면한 문제가 되었습니다. 일반적으로 사용되는 오픈 소스 관계형 데이터베이스로서 MySQL의 성능 최적화는 항상 많은 관심을 받아왔습니다. 이 기사에서는 MaxScale 도구를 사용하여 MySQL 데이터베이스의 처리량을 향상시키는 방법과 구체적인 적용 사례를 소개합니다. 1. MaxScale 소개 MaxScale은

갑자기! ChatGPT Plus 중단됨 갑자기! ChatGPT Plus 중단됨 Apr 07, 2023 pm 09:01 PM

이제 ChatGPT는 더 이상 플러스 결제를 지원하지 않습니다. △ChatGPT 스크린샷을 찍은 이유는 매우 간단하다. 수요가 많다는 점이다. 수요가 너무 높아서 OpenAI는 Plus의 판매를 중단해야 했습니다. 나중에 언제 오픈할지는 아직 알려진 바가 없습니다. 며칠 전 ChatGPT는 대규모 계정 정지로 인해 열띤 토론을 벌였고, 이제 공식적으로 플러스 유료 멤버십 신청을 종료했습니다. 많은 네티즌들은 이를 컴퓨팅 자원 부족 때문이라고 생각하는데, 이는 더 이상 돈만으로는 해결할 수 없는 문제입니다. 재정적 후원자인 Microsoft도 자체 사용자 기반을 제공해야 합니다. 더 이상 지구상에는 수요를 충족할 만큼 충분한 컴퓨팅 성능이 없습니다. 이미 비용을 지불한 일부 네티즌들은 “GPT-3.5 시절로 돌아가는 건 정말 상상할 수 없다”며 감사의 뜻을 표했다. ChatGPT closePlu

Java 오류: 응용 프로그램 리소스를 찾을 수 없습니다. 해결 및 방지 방법 Java 오류: 응용 프로그램 리소스를 찾을 수 없습니다. 해결 및 방지 방법 Jun 24, 2023 pm 06:58 PM

Java는 애플리케이션을 개발하고 웹 사이트를 만드는 데 널리 사용되는 프로그래밍 언어입니다. 그러나 Java 애플리케이션을 개발하고 배포할 때 다음 오류가 발생할 수 있습니다. 애플리케이션 리소스를 찾을 수 없습니다. 이 오류는 Java 애플리케이션을 패키징하고 배포할 때 자주 발생합니다. 이 문서에서는 이 오류를 방지하는 원인, 해결 방법 및 방법에 대해 설명합니다. 오류 원인 응용 프로그램 리소스를 찾을 수 없음 오류는 일반적으로 다음과 같은 이유로 인해 발생합니다. 1.1 파일이 없거나 손상되었습니다: 응용 프로그램 패키지 또는 종속 라이브러리 파일이 없거나 손상된 경우,

See all articles