1. /*+ALL_ROWS*/
ซึ่งแสดงให้เห็นว่ามีการเลือกวิธีการเพิ่มประสิทธิภาพตามต้นทุนสำหรับบล็อกใบแจ้งยอด และได้รับปริมาณงานที่ดีที่สุดเพื่อลดการใช้ทรัพยากรให้เหลือน้อยที่สุด
ตัวอย่างเช่น:
SELECT /*+ALL+_ROWS*/ EMP_NO,EMP_NAM,DAT_IN จาก BSEMPMS โดยที่ EMP_NO='SCOTT';
2. /*+FIRST_ROWS*/
ซึ่งแสดงให้เห็นว่ามีการเลือกวิธีการเพิ่มประสิทธิภาพตามต้นทุนสำหรับบล็อกใบแจ้งยอด และได้รับเวลาตอบสนองที่ดีที่สุดเพื่อลดการใช้ทรัพยากร
ตัวอย่างเช่น:
SELECT /*+FIRST_ROWS*/ EMP_NO,EMP_NAM,DAT_IN จาก BSEMPMS โดยที่ EMP_NO='SCOTT';
3. /*+เลือก*/
บ่งชี้ว่าหากมีข้อมูลทางสถิติเกี่ยวกับตารางการเข้าถึงในพจนานุกรมข้อมูล วิธีการปรับให้เหมาะสมจะขึ้นอยู่กับต้นทุนและจะได้ปริมาณงานที่ดีที่สุด หากไม่มีข้อมูลทางสถิติเกี่ยวกับตารางการเข้าถึงในพจนานุกรมข้อมูล วิธีการปรับให้เหมาะสมจะขึ้นอยู่กับต้นทุนของกฎ
ตัวอย่างเช่น:
SELECT /*+CHOOSE*/ EMP_NO,EMP_NAM,DAT_IN จาก BSEMMPMS โดยที่ EMP_NO='SCOTT';
4. /*+กฎ*/
ระบุการเลือกวิธีการปรับให้เหมาะสมตามกฎสำหรับบล็อกคำสั่ง
ตัวอย่างเช่น:
SELECT /*+ RULE */ EMP_NO,EMP_NAM,DAT_IN จาก BSEMMPMS โดยที่ EMP_NO='SCOTT';
5. /*+เต็ม(ตาราง)*/
ระบุวิธีการเลือกการสแกนส่วนกลางสำหรับตาราง
ตัวอย่างเช่น:
SELECT /*+FULL(A)*/ EMP_NO,EMP_NAM จาก BSEMPMS A โดยที่ EMP_NO='SCOTT';
6. /*+ROWID(ตาราง)*/
ข้อความแจ้งแสดงให้เห็นอย่างชัดเจนว่ามีการเข้าถึงตารางที่ระบุตาม ROWID
ตัวอย่างเช่น:
SELECT /*+ROWID(BSEMMPMS)*/ * จาก BSEMMPMS โดยที่ ROWID>='AAAAAAAAAAAAA'
และ EMP_NO='สกอตต์';
7. /*+คลัสเตอร์(ตาราง)*/
ข้อความแจ้งแสดงให้เห็นอย่างชัดเจนว่ามีการเลือกวิธีการเข้าถึงการสแกนคลัสเตอร์สำหรับตารางที่ระบุ ซึ่งใช้ได้กับออบเจ็กต์คลัสเตอร์เท่านั้น
ตัวอย่างเช่น:
เลือก /*+คลัสเตอร์ */ BSEMPMS.EMP_NO,DPT_NO จาก BSEMPMS,BSDPTMS
โดยที่ DPT_NO='TEC304' และ BSEMMPMS.DPT_NO=BSDPTMS.DPT_NO;
8. /*+INDEX(ดัชนีตาราง_NAME)*/
ระบุวิธีการสแกนสำหรับดัชนีการเลือกตาราง
ตัวอย่างเช่น:
SELECT /*+INDEX(BSEMPMS SEX_INDEX) ใช้ SEX_INDEX เนื่องจากมี BSEMPMS ชายเพียงไม่กี่คน */ จาก BSEMPMS โดยที่ SEX='M';
9. /*+INDEX_ASC(ดัชนีตาราง_NAME)*/
ระบุวิธีการสแกนที่เลือกดัชนีบนโต๊ะโดยเรียงลำดับจากน้อยไปหามาก
ตัวอย่างเช่น:
SELECT /*+INDEX_ASC(BSEMMPMS PK_BSEMPMS) */ จาก BSEMMPMS โดยที่ DPT_NO='SCOTT';
10. /*+INDEX_COMBINE*/
เลือกเส้นทางการเข้าถึงบิตแมปสำหรับตารางที่ระบุ หากไม่มีการระบุดัชนีเป็นพารามิเตอร์ใน INDEX_COMBINE ชุดค่าผสมบูลีนของดัชนีบิตแมปจะถูกเลือก
ตัวอย่างเช่น:
SELECT /*+INDEX_COMBINE(BSEMPMS SAL_BMI HIREDATE_BMI)*/ * จาก BSEMPMS
SAL อยู่ที่ไหน <5000000 และจ้างงาน
11. /*+INDEX_JOIN(ดัชนีตาราง)*/
พร้อมท์แจ้งอย่างชัดเจนให้เครื่องมือเพิ่มประสิทธิภาพใช้ดัชนีเป็นเส้นทางการเข้าถึง
ตัวอย่างเช่น:
เลือก /*+INDEX_JOIN(BSEMPMS SAL_HMI HIREDATE_BMI)*/ SAL,HIREDATE
จาก BSEMMPMS โดยที่ SAL<60000;
12. /*+INDEX_DESC(ดัชนีตาราง)*/
ระบุวิธีการสแกนที่เลือกดัชนีในตารางจากมากไปน้อย
ตัวอย่างเช่น:
SELECT /*+INDEX_DESC(BSEMMPMS PK_BSEMPMS) */ จาก BSEMMPMS โดยที่ DPT_NO='SCOTT';
13. /*+INDEX_FFS(ดัชนีตาราง)*/
ทำการสแกนดัชนีแบบเต็มอย่างรวดเร็วบนตารางที่ระบุ แทนการสแกนแบบเต็มตาราง
ตัวอย่างเช่น:
SELECT /*+INDEX_FFS(BSEMPMS IN_EMPNAM)*/ * จาก BSEMPMS โดยที่ DPT_NO='TEC305';
14. /*+ADD_EQUAL ตาราง INDEX_NAM1,INDEX_NAM2,...*/
แจ้งให้คุณเลือกแผนการดำเนินการอย่างชัดเจนและรวมการสแกนดัชนีคอลัมน์เดียวหลายรายการ
ตัวอย่างเช่น:
SELECT /*+INDEX_FFS(BSEMPMS IN_DPTNO,IN_EMPNO,IN_SEX)*/ * จาก BSEMPMS โดยที่ EMP_NO='SCOTT' และ DPT_NO='TDC306';
15. /*+USE_CONCAT*/
แปลงเงื่อนไข OR ที่อยู่หลัง WHERE ในแบบสอบถามเป็นแบบสอบถามแบบรวมของ UNION ALL
ตัวอย่างเช่น:
SELECT /*+USE_CONCAT*/ * จาก BSEMMPMS โดยที่ DPT_NO='TDC506' และ SEX='M';
16. /*+NO_EXPAND*/
สำหรับคำสั่งแบบสอบถาม OR หรือ IN-LIST หลังจาก WHERE NO_EXPAND จะป้องกันไม่ให้มีการขยายตามเครื่องมือเพิ่มประสิทธิภาพ
ตัวอย่างเช่น:
SELECT /*+NO_EXPAND*/ * จาก BSEMMPMS โดยที่ DPT_NO='TDC506' และ SEX='M';
17. /*+โนไรท์*/
ห้ามดำเนินการเขียนแบบสอบถามใหม่ในบล็อกแบบสอบถาม
18. /*+เขียนใหม่*/
มุมมองสามารถส่งผ่านเป็นพารามิเตอร์ได้
19. /*+ผสาน(ตาราง)*/
สามารถผสานแบบสอบถามต่างๆ ของ view เข้าด้วยกันได้
ตัวอย่างเช่น:
เลือก /*+ผสาน(V) */ A.EMP_NO,A.EMP_NAM,B.DPT_NO จาก BSEMPMS A (SELET DPT_NO
,AVG(SAL) AS AVG_SAL จาก BSEMMPMS B จัดกลุ่มตาม DPT_NO) V โดยที่ A.DPT_NO=V.DPT_NO
และ A.SAL>V.AVG_SAL;
20. /*+NO_MERGE(ตาราง)*/
มุมมองที่สามารถรวมได้จะไม่ถูกรวมเข้าด้วยกันอีกต่อไป
ตัวอย่างเช่น:
SELECT /*+NO_MERGE(V) */ A.EMP_NO,A.EMP_NAM,B.DPT_NO จาก BSEMPMS A (SELECT DPT_NO,AVG(SAL) AS AVG_SAL จาก BSEMPMS B จัดกลุ่มตาม DPT_NO) V โดยที่ A.DPT_NO=V.DPT_NO และ A.SAL>V.AVG_SAL;
21. /*+สั่งแล้ว*/
ตามลำดับที่ตารางปรากฏใน FROM ORDERED จะทำให้ ORACLE เชื่อมต่อกับตารางเหล่านั้นตามลำดับนั้น
ตัวอย่างเช่น:
เลือก /*+สั่งซื้อ*/ A.COL1,B.COL2,C.COL3 จากตาราง 1 A,ตาราง 2 B,TABLE3 C โดยที่ A.COL1=B.COL1 และ B.COL1=C.COL1;
22. /*+USE_NL(ตาราง)*/
รวมตารางที่ระบุกับแหล่งแถวของการรวมแบบซ้อน โดยใช้ตารางที่ระบุเป็นตารางด้านใน
ตัวอย่างเช่น:
SELECT /*+สั่ง USE_NL(BSEMPMS)*/ BSDPTMS.DPT_NO,BSEMPMS.EMP_NO,BSEMPMS.EMP_NAM จาก BSEMPMS,BSDPTMS โดยที่ BSEMPMS.DPT_NO=BSDPTMS.DPT_NO;
23. /*+USE_MERGE(ตาราง)*/
รวมตารางที่ระบุกับแหล่งแถวอื่นๆ โดยใช้การรวมการเรียงลำดับแบบผสาน
ตัวอย่างเช่น:
SELECT /*+USE_MERGE(BSEMPMS,BSDPTMS)*/ * จาก BSEMPMS,BSDPTMS โดยที่ BSEMPMS.DPT_NO=BSDPTMS.DPT_NO;
24. /*+USE_HASH(ตาราง)*/
รวมตารางที่ระบุกับแหล่งแถวอื่นโดยใช้การรวมแฮช
ตัวอย่างเช่น:
SELECT /*+USE_HASH(BSEMPMS,BSDPTMS)*/ * จาก BSEMPMS,BSDPTMS โดยที่ BSEMPMS.DPT_NO=BSDPTMS.DPT_NO;
25. /*+DRIVING_SITE(ตาราง)*/
บังคับให้ดำเนินการแบบสอบถามกับตารางที่แตกต่างจากตำแหน่งที่เลือกโดย ORACLE
ตัวอย่างเช่น:
SELECT /*+DRIVING_SITE(DEPT)*/ * จาก BSEMPMS,DEPT@BSDPTMS โดยที่ BSEMPMS.DPT_NO=DEPT.DPT_NO;
26. /*+นำ(ตาราง)*/
ใช้ตารางที่ระบุเป็นตารางแรกในลำดับการรวม
27. /*+แคช(ตาราง)*/
เมื่อดำเนินการสแกนตารางทั้งหมด คำใบ้ CACHE สามารถวางบล็อกการดึงข้อมูลของตารางไว้ที่ส่วนท้ายของรายการ LRU ล่าสุดที่ใช้ล่าสุดในแคชบัฟเฟอร์ ตัวอย่างเช่น:
SELECT /*+FULL(BSEMPMS) CAHE(BSEMPMS) */ EMP_NAM จาก BSEMPMS;
28. /*+NOCACHE(ตาราง)*/
เมื่อดำเนินการสแกนตารางทั้งหมด คำใบ้ CACHE สามารถวางบล็อกการดึงข้อมูลของตารางไว้ที่ส่วนท้ายของรายการ LRU ล่าสุดที่ใช้ล่าสุดในแคชบัฟเฟอร์ ตัวอย่างเช่น:
SELECT /*+FULL(BSEMPMS) NOCAHE(BSEMPMS) */ EMP_NAM จาก BSEMPMS;
29. /*+ผนวก*/
การใส่โดยตรงที่ส่วนท้ายของโต๊ะจะช่วยเพิ่มความเร็วได้
ตัวอย่างเช่น:
ใส่ /*+ผนวก*/ ใน test1 เลือก * จาก test4 ;
30. /*+ไม่ต้องผนวก*/
เริ่มการแทรกปกติโดยการหยุดโหมดขนานตลอดอายุการใช้งานของคำสั่งการแทรก
ตัวอย่างเช่น:
แทรก /*+noappend*/ ลงใน test1 เลือก * จาก