1. /*+ALL_ROWS*/
ويوضح أنه تم تحديد طريقة التحسين المستندة إلى التكلفة لكتل البيانات، ويتم الحصول على أفضل إنتاجية لتقليل استهلاك الموارد.
على سبيل المثال:
SELECT /*+ALL+_ROWS*/ EMP_NO,EMP_NAM,DAT_IN من BSEMPMS WHERE EMP_NO='SCOTT';
2. /*+FIRST_ROWS*/
ويوضح أنه تم تحديد طريقة التحسين على أساس التكلفة لكتل البيانات، ويتم الحصول على أفضل وقت استجابة لتقليل استهلاك الموارد.
على سبيل المثال:
SELECT /*+FIRST_ROWS*/ EMP_NO,EMP_NAM,DAT_IN من BSEMPMS WHERE EMP_NO='SCOTT';
3. /*+اختيار*/
يشير إلى أنه إذا كانت هناك معلومات إحصائية حول جدول الوصول في قاموس البيانات، فستعتمد طريقة التحسين على التكلفة وسيتم الحصول على أفضل إنتاجية إذا لم تكن هناك معلومات إحصائية حول جدول الوصول في قاموس البيانات سوف تعتمد طريقة التحسين على تكلفة القاعدة؛
على سبيل المثال:
SELECT /*+CHOOSE*/ EMP_NO,EMP_NAM,DAT_IN من BSEMMPMS WHERE EMP_NO='SCOTT';
4. /*+القاعدة*/
يشير إلى اختيار أساليب التحسين المستندة إلى القواعد لكتل البيانات.
على سبيل المثال:
SELECT /*+ RULE */ EMP_NO,EMP_NAM,DAT_IN من BSEMMPMS WHERE EMP_NO='SCOTT';
5. /*+كامل(جدول)*/
يشير إلى كيفية تحديد المسح الشامل للجدول.
على سبيل المثال:
SELECT /*+FULL(A)*/ EMP_NO,EMP_NAM FROM BSEMPMS A WHERE EMP_NO='SCOTT';
6. /*+ROWID(جدول)*/
تشير المطالبة بوضوح إلى أنه تم الوصول إلى الجدول المحدد بناءً على ROWID.
على سبيل المثال:
حدد /*+ROWID(BSEMMPMS)*/ * من BSEMMPMS حيث ROWID>='AAAAAAAAAAAAAA'
AND EMP_NO='SCOTT';
7. /*+المجموعة(جدول)*/
تشير المطالبة بوضوح إلى أنه تم تحديد طريقة الوصول لفحص المجموعة للجدول المحدد، وهي صالحة فقط لكائنات المجموعة.
على سبيل المثال:
حدد /*+المجموعة */ BSEMPMS.EMP_NO,DPT_NO من BSEMPMS,BSDPTMS
حيث DPT_NO='TEC304' وBSEMMPMS.DPT_NO=BSDPTMS.DPT_NO;
8. /*+INDEX(جدول INDEX_NAME)*/
يشير إلى طريقة المسح لفهارس اختيار الجدول.
على سبيل المثال:
SELECT /*+INDEX(BSEMMPMS SEX_INDEX) استخدم SEX_INDEX لأن هناك عدد قليل من BSEMPMS */ من BSEMPMS WHERE SEX='M';
9. /*+INDEX_ASC(جدول INDEX_NAME)*/
يشير إلى طريقة المسح التي تحدد الفهارس الموجودة في الجدول بترتيب تصاعدي.
على سبيل المثال:
SELECT /*+INDEX_ASC(BSEMMPMS PK_BSEMMPMS) */ FROM BSEMMPMS WHERE DPT_NO='SCOTT';
10. /*+INDEX_COMBINE*/
حدد مسار الوصول إلى الصورة النقطية للجدول المحدد إذا لم يتم توفير فهرس كمعلمة في INDEX_COMBINE، فسيتم تحديد المجموعة المنطقية من فهارس الصور النقطية.
على سبيل المثال:
حدد /*+INDEX_COMBINE(BSEMMPMS SAL_BMI HIREDATE_BMI)*/ * من BSEMPMS
حيث SAL <5000000 والتاريخ
11. /*+INDEX_JOIN(جدول INDEX_NAME)*/
يرشد الموجه المحسن بشكل صريح لاستخدام الفهرس كمسار الوصول.
على سبيل المثال:
حدد /*+INDEX_JOIN(BSEMMPMS SAL_HMI HIREDATE_BMI)*/ SAL,HIREDATE
من BSEMMPMS حيث SAL<60000؛
12. /*+INDEX_DESC(جدول INDEX_NAME)*/
يشير إلى طريقة المسح التي تحدد الفهارس الموجودة في الجدول بترتيب تنازلي.
على سبيل المثال:
SELECT /*+INDEX_DESC(BSEMMPMS PK_BSEMMPMS) */ FROM BSEMMPMS WHERE DPT_NO='SCOTT';
13. /*+INDEX_FFS(جدول INDEX_NAME)*/
قم بإجراء فحص سريع وكامل للفهرس على الجدول المحدد بدلاً من إجراء فحص كامل للجدول.
على سبيل المثال:
SELECT /*+INDEX_FFS(BSEMMPMS IN_EMPNAM)*/ * من BSEMPMS WHERE DPT_NO='TEC305';
14. /*+ADD_EQUAL جدول INDEX_NAM1,INDEX_NAM2,...*/
يطالبك بتحديد خطة التنفيذ بشكل صريح ودمج عمليات المسح لعدة فهارس ذات عمود واحد.
على سبيل المثال:
SELECT /*+INDEX_FFS(BSEMMPMS IN_DPTNO,IN_EMPNO,IN_SEX)*/ * من BSEMPMS WHERE EMP_NO='SCOTT' AND DPT_NO='TDC306';
15. /*+USE_CONCAT*/
تحويل الشرط OR بعد WHERE في الاستعلام إلى استعلام مدمج لـ UNION ALL.
على سبيل المثال:
SELECT /*+USE_CONCAT*/ * من BSEMMPMS WHERE DPT_NO='TDC506' AND SEX='M';
16. /*+NO_EXPAND*/
بالنسبة لبيانات الاستعلام OR أو IN-LIST بعد WHERE، سيمنع NO_EXPAND توسيعها بناءً على المُحسِّن.
على سبيل المثال:
SELECT /*+NO_EXPAND*/ * من BSEMMPMS WHERE DPT_NO='TDC506' AND SEX='M';
17. /*+الكتابة*/
يحظر إجراء عمليات إعادة كتابة الاستعلام على كتل الاستعلام.
18. /*+إعادة الكتابة*/
يمكن تمرير طرق العرض كمعلمات.
19. /*+دمج(جدول)*/
القدرة على دمج الاستعلامات المختلفة للعرض وفقًا لذلك.
على سبيل المثال:
SELECT /*+MERGE(V) */ A.EMP_NO,A.EMP_NAM,B.DPT_NO من BSEMPMS A (SELET DPT_NO)
، AVG(SAL) كـ 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 GROUP BY DPT_NO) V حيث A.DPT_NO=V.DPT_NO و A.SAL>V.AVG_SAL؛
21. /*+تم الطلب*/
وفقًا للترتيب الذي تظهر به الجداول في FROM، يؤدي ORDERED إلى اتصال ORACLE بها بهذا الترتيب.
على سبيل المثال:
SELECT /*+ORDERED*/ A.COL1,B.COL2,C.COL3 من TABLE1 A,TABLE2 B,TABLE3 C حيث A.COL1=B.COL1 وB.COL1=C.COL1;
22. /*+USE_NL(TABLE)*/
ربط الجدول المحدد بمصدر صف الصلة المتداخلة، باستخدام الجدول المحدد كجدول داخلي.
على سبيل المثال:
SELECT /*+ORDERED USE_NL(BSEMMPMS)*/ BSDPTMS.DPT_NO,BSEMPMS.EMP_NO,BSEMPMS.EMP_NAM FROM BSEMPMS,BSDPTMS WHERE BSEMPMS.DPT_NO=BSDPTMS.DPT_NO;
23. /*+USE_MERGE(جدول)*/
ربط الجدول المحدد بمصادر الصفوف الأخرى باستخدام صلة فرز الدمج.
على سبيل المثال:
SELECT /*+USE_MERGE(BSEMPMS,BSDPTMS)*/ * من BSEMPMS,BSDPTMS WHERE BSEMPMS.DPT_NO=BSDPTMS.DPT_NO;
24. /*+USE_HASH(جدول)*/
لربط الجدول المحدد بمصادر الصفوف الأخرى باستخدام صلة التجزئة.
على سبيل المثال:
SELECT /*+USE_HASH(BSEMPMS,BSDPTMS)*/ * من BSEMPMS,BSDPTMS WHERE BSEMPMS.DPT_NO=BSDPTMS.DPT_NO;
25. /*+DRIVING_SITE(جدول)*/
يفرض تنفيذ الاستعلام على جدول مختلف عن الموقع المحدد بواسطة ORACLE.
على سبيل المثال:
SELECT /*+DRIVING_SITE(DEPT)*/ * من BSEMPMS,DEPT@BSDPTMS WHERE BSEMPMS.DPT_NO=DEPT.DPT_NO;
26. /*+المقدمة(الجدول)*/
استخدم الجدول المحدد كالجدول الأول في ترتيب الانضمام.
27. /*+ذاكرة التخزين المؤقت(جدول)*/
عند إجراء فحص كامل للجدول، يمكن لتلميح CACHE وضع كتلة الاسترداد الخاصة بالجدول في النهاية الأكثر استخدامًا لقائمة LRU الأقل حداثة في ذاكرة التخزين المؤقت على سبيل المثال:
SELECT /*+FULL(BSEMMPMS) CAHE(BSEMMPS) */ EMP_NAM FROM BSEMPMS;
28. /*+نوكاش(جدول)*/
عند إجراء فحص كامل للجدول، يمكن لتلميح CACHE وضع كتلة الاسترداد الخاصة بالجدول في النهاية الأكثر استخدامًا لقائمة LRU الأقل حداثة في ذاكرة التخزين المؤقت على سبيل المثال:
SELECT /*+FULL(BSEMMPMS) NOCAHE(BSEMMPMS) */ EMP_NAM FROM BSEMPMS;
29. /*+إلحاق*/
يمكن أن يؤدي الإدخال مباشرة في نهاية الجدول إلى تحسين السرعة.
على سبيل المثال:
أدخل /*+إلحاق*/ في test1 وحدد * من test4 ؛
30. /*+NOAPEND*/
يبدأ عمليات الإدخال المنتظمة عن طريق إيقاف الوضع المتوازي طوال مدة عبارة الإدراج.
على سبيل المثال:
أدخل /*+noappend*/ في test1 وحدد * من