AlloyDB ל-PostgreSQL מציע יועץ אינדקסים שעוקב אחרי השאילתות שמסד הנתונים מטפל בהן באופן קבוע. המערכת מנתחת את השאילתות האלה מעת לעת כדי להמליץ על אינדקסים חדשים שיכולים לשפר את הביצועים של השאילתות.
אפשר לראות את ההמלצות שלו כטבלה, או לבקש ניתוח ודוח לפי דרישה בכל שלב.
לפני שמתחילים
לפני שמשתמשים בכלי לייעוץ בנושא אינדקסים, חשוב לוודא שהמקרה שלכם עונה על הקריטריונים הבאים:
הפעלת התוספים הנדרשים
נכנסים לדף Clusters במסוף Google Cloud .
לוחצים על אשכול בעמודה שם המשאב.
בדף תובנות לגבי שאילתות, לוחצים על עריכת הגדרות השאילתה.
לוחצים על הפעלת הכלי לייעוץ בנושא אינדקסים.
כדי להפעיל המלצות לאינדקסים של חיפוש וקטורי לאינדקסים של Scalable Nearest Neighbors (ScaNN), מפעילים את הדגל
scann.enable_preview_features(תצוגה מקדימה). מידע נוסף זמין במאמר הגדרת דגלים של מסד נתונים במופע.
צפייה בהמלצות של הכלי לייעוץ בנושא אינדקסים
מערכת AlloyDB מריצה באופן אוטומטי את הניתוח של הכלי לייעוץ בנושא אינדקסים מעת לעת. אפשר לקרוא את התוצאות בשתי תצוגות טבלה שנמצאות בכל אחד ממסדי הנתונים:
google_db_advisor_recommended_indexesמציג רשימה של אינדקסים חדשים מומלצים למסד הנתונים שלו. הוא כולל גם הערכות של נפח האחסון שנדרש לכל אינדקס, ומספר השאילתות שכל אינדקס יכול להשפיע עליהן.google_db_advisor_workload_reportמציג רשימה של כל השאילתות שבהן הכלי ממליץ על אינדקסים חדשים. בכל שורה מופיע סיכום של ההמלצות לגבי השאילתה הרלוונטית.google_db_advisor.enable_vector_index_advisorמאפשר לתוסףgoogle_db_advisorלהמליץ על אינדקסים לשאילתות וקטוריות. אפשר להשתמש גם בדגלscann.enable_preview_features(בתצוגה מקדימה) כדי להפעיל את הדגל הזה.
לדוגמה, כדי לראות את התוצאות של הניתוח האחרון של המלצות לגבי אינדקס, בפורמט של טבלה, מריצים את השאילתה הבאה:
SELECT * FROM google_db_advisor_recommended_indexes;
אם בניתוח האחרון של הכלי לייעוץ בנושא אינדקסים לא נמצאו המלצות, השאילתה הזו מחזירה טבלה ללא שורות.
מכיוון שכל הדוחות האלה קיימים כתצוגות רגילות של מסד נתונים, אפשר לכתוב שאילתות שמסננות את המידע או מציגות אותו בכל דרך שרוצים. לדוגמה, כדי לראות דוח שמשייך בין אינדקסים מומלצים לבין השאילתה המלאה שמשויכת אליהם, צריך לבצע הצטרפות לתצוגות google_db_advisor_workload_report ו-google_db_advisor_workload_statements בעמודות query_id המתאימות:
SELECT DISTINCT recommended_indexes, query
FROM google_db_advisor_workload_report r, google_db_advisor_workload_statements s
WHERE r.query_id = s.query_id;
בקשה ידנית של ניתוח אינדקס
במקום לחכות לניתוח המתוזמן הבא של הכלי לייעוץ בנושא אינדקסים, אפשר לבקש מ-AlloyDB להריץ ניתוח באופן מיידי ולהציג את הדוח שלו. כדי לעשות את זה, מריצים את פונקציית ה-SQL הבאה:
SELECT * FROM google_db_advisor_recommend_indexes();
אחרי שהניתוח מסתיים, ב-AlloyDB מוצג דוח בפורמט טבלה עם התיאור והערכת צורכי האחסון של כל האינדקסים המומלצים. אם בניתוח לא נמצאו אינדקסים חדשים להמלצה, התצוגה לא תכיל שורות.
שימו לב: תפקיד המשתמש ב-PostgreSQL שמריץ את הפקודה הזו יכול להשפיע על ההמלצות שמוצגות. אם השאילתה הזו מופעלת על ידי postgres או משתמש אחר עם התפקיד alloydbsuperuser, AlloyDB מציג את כל ההמלצות הנוכחיות של הכלי לייעוץ בנושא אינדקסים. אחרת, מערכת AlloyDB תציג רק המלצות לאינדקסים על סמך שאילתות שהונפקו על ידי משתמש מסד הנתונים הנוכחי.
יישום ההמלצות של הכלי לייעוץ בנושא אינדקסים
העמודה index בתצוגה google_db_advisor_recommended_indexes מכילה, בכל שורה, הצהרת CREATE INDEX DDL מלאה של PostgreSQL ליצירת האינדקס שמומלץ בשורה הזו.
כדי להחיל את ההמלצה של השורה הזו, מריצים את הצהרת ה-DDL הזו בדיוק כמו שהיא מוצגת. זה כולל העתקה ללוח והדבקה בהנחיה ב-psql.
לדוגמה, הפלט הבא מתקבל מהרצת ניתוח באופן ידני, באמצעות השאילתה שמתוארת בקטע הקודם:
index | estimated_storage_size_in_mb
--------------------------------------------+------------------------------
CREATE INDEX ON "School"."Students"("age") | 3
(1 row)
הדוח הזה מכיל המלצה אחת: להוסיף אינדקס חדש של עמודה אחת בעמודה age בטבלה Students בסכימה School. כדי ליישם את ההמלצה הזו, מזינים שאילתת DDL בדיוק כמו שהיא מוצגת בדוח:
CREATE INDEX ON "School"."Students"("age");
צפייה בשאילתות שבמעקב של הכלי לייעוץ בנושא אינדקסים
התצוגה google_db_advisor_workload_statements מכילה רשימה של כל השאילתות שהכלי לייעוץ בנושא אינדקסים עקב אחריהן, וגם מטא-נתונים חשובים לגבי כל אחת מהן, כמו המדדים הבאים:
- מספר הפעמים שהמופע ביצע את השאילתה הזו
- הזמן הכולל שמוקצה למופע לעיבוד השאילתות האלה
- המזהה של משתמש מסד הנתונים שמריץ את השאילתות האלה
ניקוי השאילתות במעקב של Index advisor
כדי לאפס את ההתנהגות של הכלי לייעוץ בנושא אינדקסים במופע, צריך לנקות את השאילתות שהוא עוקב אחריהן. כדי לעשות את זה, מריצים את פונקציית ה-SQL הבאה:
SELECT google_db_advisor_reset();
מערכת AlloyDB מרוקנת באופן מיידי את אוסף השאילתות המעקב של הכלי לייעוץ בנושא אינדקסים.
הגדרת הכלי להמלצות על אינדקסים
הכלי לייעוץ בנושא אינדקסים מיועד לפעול ברוב תרחישי השימוש עם הגדרות ברירת המחדל שלו, אבל אפשר לכוונן את ההתנהגות שלו על ידי הגדרת דגלים שונים של מסד הנתונים. מידע נוסף זמין במאמר בנושא דגלים של כלי הייעוץ בנושא אינדקסים.