בדף הזה מוסבר איך להשתמש בסינון אדפטיבי ב-AlloyDB Omni. בדף הזה מוסבר איך להשתמש בסינון אדפטיבי ב-AlloyDB Omni.
סינון אדפטיבי מנתח את דפוסי השאילתות ואת התפלגויות הנתונים במהלך ביצוע השאילתות, כדי לבחור באופן דינמי את אסטרטגיית הסינון היעילה ביותר, כמו סינון מוטבע או סינון מראש.
אופטימיזציית השאילתות ב-AlloyDB Omni משתמשת בניתוח מבוסס-עלות כדי לקבוע אם סינון מוטבע או סינון מראש מספקים את הביצועים הטובים ביותר בכל נקודה נתונה במהלך ביצוע השאילתה.
אופטימיזציה כזו מועילה לחיפושי וקטורים מסוננים ב-AlloyDB Omni, שבהם סינון אדפטיבי עובר אוטומטית בין שימוש בווקטור לבין שימוש באינדקס מטא-נתונים כדי להבטיח תוצאות יעילות ומדויקות ללא התערבות ידנית.
הפעלת סינון דינמי
כדי להפעיל סינון אדפטיבי, משתמשים בדגל scann.enable_preview_features.
כשהסינון הדינמי מפעיל מעבר מסינון מוטבע לסינון מראש במהלך ההרצה, תוכנית השאילתה משתנה באופן דינמי.
לדוגמה, התוכנית יכולה להציג Bitmap assisted pre-filtering בשדה Execution Strategy אם האופטימיזציה קובעת שבשלב הזה של השאילתה סינון מראש יהיה יעיל יותר. השינוי הדינמי הזה מתרחש כשהמערכת מתאימה את עצמה לנתונים בפועל שהיא נתקלת בהם במהלך הביצוע של השאילתה.
Limit (actual rows=10 loops=1)
-> Custom Scan (vector scan) on t1 (actual rows=10 loops=1)
Execution Strategy: Bitmap assisted pre-filtering
Order By: (vec_col <=> '[...]'::vector)
Limit: 10
Num Requalifications: 0
Num filtered: 1000
-> Bitmap Index Scan on btree_idx (actual rows=10000 loops=1)
Index Cond: (int_col <= 100000000)