שימוש בכלי לייעוץ לגבי אינדקסים

ב-AlloyDB ל-PostgreSQL יש יועץ אינדקסים שעוקב אחרי השאילתות שמסד הנתונים מטפל בהן באופן קבוע. מדי פעם, הוא מנתח את השאילתות האלה כדי להמליץ על אינדקסים חדשים שיכולים לשפר את הביצועים של השאילתות.

אפשר לעבוד עם ההמלצות של Index advisor בדרכים הבאות:

סקירה כללית על Index advisor

לפני שמתחילים

לפני שמשתמשים בכלי Index advisor, חשוב לוודא שהמקרה שלכם עונה על הקריטריונים הבאים.

הפעלת התוספים הנדרשים

  1. נכנסים לדף Clusters במסוף Google Cloud .

    כניסה לדף Clusters

  2. לוחצים על אשכול בעמודה Resource Name.

  3. בדף Query insights, לוחצים על Edit query settings.

  4. לוחצים על Enable index advisor.

הצגת ההמלצות של Index advisor

‫AlloyDB מריץ באופן אוטומטי את הניתוח של Index advisor מדי פעם. אתם יכולים לראות את ההמלצות לאינדקסים שנוצרו במרכז הבקרה תובנות לגבי שאילתות במסוף Google Cloud , או על ידי שליחת שאילתות ישירות לתצוגות של טבלאות במסד הנתונים.

הצגת המלצות בתובנות לגבי שאילתות

הכלי Index advisor משולב ב-AlloyDB עם תובנות לגבי שאילתות ותובנות מתקדמות לגבי שאילתות במסוףGoogle Cloud .

כשהכלי Index Advisor מזהה אינדקסים חסרים של חיפוש וקטורי מסוג B-tree או ScaNN שיכולים לשפר את ביצועי השאילתות, ההמלצות והתזכורות של הכלי מופיעות במרכז הבקרה Query Insights בתצוגות הבאות:

  • בדף Query insights, בקטע Top dimensions by database load, בוחרים בכרטיסייה Queries. בטבלה, בעמודה Recommendations מופיע הקישור Create indexes לצד כל שאילתה שיש לה המלצות מהכלי Index advisor. אפשר גם להוסיף מסנן ל-Recommendation: Create indexes כדי להציג רק שאילתות עם המלצות לאינדקסים.

  • כשבוחרים שאילתה מהטבלה Queries, נפתח הדף Query details. בדף הזה מופיע הכרטיס Index recommendation בתצוגה של תוכנית לביצוע שאילתה לדוגמה, וגם הטבלה Recommended indexes. בתצוגות האלה מוצגים ההשפעה המשוערת על הביצועים (גבוהה, בינונית או נמוכה), סוג האינדקס המומלץ וטבלת היעד, נפח האחסון הנוסף המשוער שנדרש, מספר הטבלאות המושפעות ומספר השאילתות המושפעות.

  • כשלוחצים על Create indexes (או על View details בהמלצה), נפתח החלון Create indexes to improve query performance. בחלונית הזו אפשר לבדוק את הצהרות ה-DDL המומלצות של CREATE INDEX, לראות את השיפור המשוער בזמן הביצוע, ללחוץ על Show impacted queries כדי לבדוק את כל השאילתות של עומס העבודה שמשתפרות בזכות האינדקס המומלץ, ולהעתיק את הפקודות או לפתוח אותן ישירות ב-AlloyDB Studio.

במאמרים שימוש ב-AlloyDB ל-PostgreSQL index advisor עם תובנות לגבי שאילתות ושיפור הביצועים של שאילתות באמצעות תכונות מתקדמות של תובנות לגבי שאילתות מוסבר איך להגדיר את תדירות הרענון של ההמלצות, לסנן המלצות וליצור אינדקסים מומלצים במסוףGoogle Cloud .

הצגת המלצות באמצעות תצוגות של מסד נתונים

אפשר גם לקרוא את התוצאות של Index advisor דרך שתי תצוגות טבלה שנמצאות בכל אחד ממסדי הנתונים:

  • ‫google_db_advisor_recommended_indexes מציג רשימה של אינדקסים חדשים שמומלצים למסד הנתונים שלו. הוא כולל גם הערכות של נפח האחסון שנדרש לכל אינדקס, ומספר השאילתות שכל אינדקס יכול להשפיע עליהן.

  • ב-google_db_advisor_workload_report מפורטות כל השאילתות שהיועץ ממליץ להוסיף להן אינדקס חדש אחד או יותר. בכל שורה מסוכמות ההמלצות לשאילתה הרלוונטית.

לדוגמה, כדי לראות את התוצאות של ניתוח ההמלצות האחרון לאינדקסים בפורמט של טבלה, מריצים את השאילתה הבאה:

SELECT * FROM google_db_advisor_recommended_indexes;

אם בניתוח האחרון של הכלי Index advisor לא נמצאו המלצות, השאילתה הזו מחזירה טבלה ללא שורות.

מכיוון שכל הדוחות האלה קיימים כתצוגות רגילות של מסד נתונים, אתם יכולים לכתוב שאילתות שמסננות או מציגות מידע בכל דרך שתרצו. לדוגמה, כדי לראות דוח שמקשר בין אינדקסים מומלצים לבין השאילתה המלאה שמשויכת אליהם, צריך לצרף את התצוגות 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;

בקשה ידנית לניתוח אינדקס

במקום לחכות לניתוח הבא שמתוזמן ל-Index advisor, אתם יכולים לבקש מ-AlloyDB להריץ ניתוח באופן מיידי ולהציג את הדוח שלו. כדי לעשות את זה, מריצים את פונקציית ה-SQL הבאה:

SELECT * FROM google_db_advisor_recommend_indexes();

בסיום הניתוח, ב-AlloyDB מוצג דוח בפורמט של טבלה עם התיאור והערכת נפח האחסון הנדרש לכל אחד מהאינדקסים המומלצים. אם הניתוח לא מוצא אינדקסים חדשים להמלצה, התצוגה לא מכילה שורות.

שימו לב שתפקיד המשתמש ב-PostgreSQL שמריץ את הפקודה הזו יכול להשפיע על ההמלצות שמוצגות. אם השאילתה הזו מופעלת על ידי postgres או משתמש אחר עם התפקיד alloydbsuperuser, אז AlloyDB מציג את כל ההמלצות הנוכחיות של Index advisor. אחרת, AlloyDB מציג רק המלצות לאינדקסים שמבוססות על שאילתות שהונפקו על ידי המשתמש הנוכחי במסד הנתונים.

יישום ההמלצות של Index advisor

בלוח הבקרה Query insights במסוף Google Cloud , לוחצים על Create indexes לשאילתה, לוחצים על Copy all index commands (או על Open commands in Studio כדי לפתוח את הצהרות ה-CREATE INDEX ב-AlloyDB Studio), ואז מריצים את הפקודות במכונה הראשית. להוראות מפורטות, קראו את המאמר יצירת אינדקסים מומלצים בתובנות לגבי שאילתות.

כשמריצים שאילתה ישירות בתצוגה של מסד הנתונים, העמודה index בתצוגה google_db_advisor_recommended_indexes מכילה בכל שורה הצהרת DDL מלאה של PostgreSQL CREATE INDEX ליצירת האינדקס שמומלץ באותה שורה.

כדי ליישם את ההמלצה של אותה שורה, מריצים את הצהרת ה-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");

הצגת השאילתות שהכלי Index advisor עוקב אחריהן

התצוגה google_db_advisor_workload_statements מכילה רשימה של כל השאילתות שהכלי Index advisor עקב אחריהן, וגם מטא-נתונים חשובים לכל אחת מהן, כמו המדדים הבאים:

  • מספר הפעמים שהמכונה הריצה את השאילתה הזו
  • הזמן הכולל שנדרש למכונה כדי לעבד את השאילתות האלה
  • המזהה של המשתמש במסד הנתונים שמריץ את השאילתות האלה

מחיקת השאילתות במעקב של Index advisor

כדי לאפס את ההתנהגות של הכלי Index advisor במכונה, אפשר למחוק את השאילתות שהכלי עוקב אחריהן. כדי לעשות את זה, מריצים את פונקציית ה-SQL הבאה:

SELECT google_db_advisor_reset();

‫AlloyDB מרוקן מיד את אוסף השאילתות במעקב של Index advisor.

הגדרת הכלי Index advisor

הכלי Index Advisor פועל ברוב תרחישי השימוש עם הגדרות ברירת המחדל שלו, אבל אתם יכולים לשנות את ההתנהגות שלו על ידי הגדרת דגלים שונים לניהול מסד הנתונים.

לדוגמה, אתם יכולים להגדיר את הדגל google_db_advisor.enable_vector_index_advisor כדי לאפשר לכלי Index advisor להמליץ על אינדקסים לשאילתות וקטוריות. הדגל הזה מופעל כברירת מחדל.

מידע נוסף זמין במאמר דגלים של Index advisor.

המאמרים הבאים