כאשר כתיבה למטמון מאופשרת, כל שאילתא מוערכת כדי לקבוע אם היא ראויה לקליעה למטמון.
קליעה למטמון פירושה ש-Oracle Analytics Cloud הצליח להשתמש במטמון כדי להשיב לשאילתא וכלל לא ניגש למסד הנתונים. Oracle Analytics Cloud יכול להשתמש במטמון השאילתות כדי להשיב לשאילתות באותה רמה של סכימה או ברמה גבוהה יותר.
גורמים רבים קובעים אם יש קליעה למטמון. הטבלה להלן מתארת גורמים אלה.
| גורם או כלל | תיאור |
|---|---|
|
תת-סל של עמודות ברשימת |
כל העמודות ברשימת כלל זה מתאר את הדרישה המזערית לקליעה למטמון, אך עמידה בדרישה זו אינה מבטיחה קליעה למטמון. גם הכללים האחרים המפורטים בטבלה זו חלים. |
|
עמודות ברשימת |
Oracle Analytics Cloud יכול לחשב ביטויים בתוצאות במטמון כדי להשיב לשאילתא החדשה, אך כל העמודות חייבות להיות בתוצאה במטמון. לדוגמה, השאילתא: SELECT product, month, averageprice FROM sales WHERE year = 2000 קולעת למטמון בשאילתא: SELECT product, month, dollars, unitsales FROM sales WHERE year = 2000 כיוון שאת |
|
הפסוקית |
כדי שהשאילתא תיחשב כקליעה למטמון, אילוצי הפסוקית פסוקית
בנוסף, עמודות בשימוש בפסוקית SELECT employeename
FROM employee, geography
WHERE region in ('EAST', 'WEST')
לא מביאה לקליעה למטמון בשביל השאילתא המוגדרת מראש ברשימה הקודמת ניוון ש-REGION איננו ברשימת התחזית. |
|
שאילתות ממד-בלבד חייבות להיות התאמה מדויקת |
אם שאילתא היא ממד בלבד, כלומר היא לא כוללת עובדות או מדדים, אזי רק התאמה מדויקת לעמודות התחזית של השאילתא במטמון קולעת למטמון. התנהגות זו מונעת חיוביים שקריים כאשר לטבלת ממדים יש מספר מקורות לוגיים. |
|
שאילתות עם פונקציות מיוחדות חייבות להיות התאמה מדויקת |
שאילתות אחרות המכילות פונקציות מיוחדות כגון פונקציות של סדרות זמן ( |
|
סל של טבלאות לוגיות חייב להתאים |
כדי להיות ראויות לקליעה למטמון, כל השאילתות הנכנסות חייבות להיות בעלות אותו סל של טבלאות לוגיות כמו הרשומה במטמון. כלל זה מונע קליעות שקריות למטמון. למשל, |
|
ערכים של משתני מושב עבודה חייבים להתאים, כולל משתני אבטחה של המושב |
אם משפט SQL הלוגי או הפיזי מפנה למשתנה כלשהו של מושב עבודה, ערכי משתנה מושב העבודה חייבים להתאים. אחרת אין קליעה למטמון. בנוסף, הערך של משתני מושב עבודה שהם רגישים לאבטחה חייבים להתאים לערכי משתני האבטחה של מושב העבודה המוגדרים במודל הסמנטי, גם אם משפט SQL הלוגי עצמו לא מפנה למשתנים של מושב עבודה. ראה הבטחת תוצאות מטמון נכונות בזמן שימוש באבטחת מסד נתונים ברמת השורה. |
|
תנאי join שווי ערך |
הטבלה הלוגית המאוחדת המתקבלת כתוצאה מבקשת שאילתא חדשה חייבת להיות זהה ל- (או תת-סל של) תוצאות במטמון כדי להיות ראויה לקליעה למטמון. |
|
התכונה |
אם שאילתא במטמון מסלקת רשומות כפולות עם עיבוד |
|
שאילתות חייבות להכיל רמות סכימה תואמות |
שאילתות המבקשות רמת מידע מסוכמת יכולות להשתמש בתוצאות במטמון ברמה נמוכה יותר של סכימה. למשל, השאילתא הבאה מבקשת את הכמות שנמכרה ברמת הספק והאזור והעיר. SELECT supplier, region, city, qtysold FROM suppliercity השאילתא הבאה מבקשת את הכמות שנמכרה ברמת העיר. SELECT city, qtysold FROM suppliercity השאילתא השנייה מביאה לקליעה למטמון בשאילתא הראשונה. |
|
סכימה נוספת מוגבלת |
למשל, אם שאילתא עם העמודה |
|
פסוקית |
שאילתות המסדרות לפי עמודות שאינן כלולות ברשימת הבחירה מביאות להחטאות מטמון. |
|
אבחון התנהגות הקליעה למטמון |
כדי להעריך טוב יותר את התנהגות הקליעה למטמון, הגדר את משתנה מושב העבודה ENABLE_CACHE_DIAGNOSTICS ל-4, כרפי שמוצג בדוגמה הבאה: ENABLE_CACHE_DIAGNOSTICS=4 |