שימוש ב-Index advisor

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

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

איך פועל הכלי לייעוץ בנושא אינדקסים?

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

  • המלצה על קבוצת אינדקסים עם פקודות SQL ליצירת אינדקסים.
  • מספקים נתונים שיעזרו לכם להעריך את האינדקסים המומלצים, למשל, גודל האחסון המשוער וההשפעה של האינדקסים על שאילתה.
הכלי לייעוץ בנושא אינדקסים מאחסן ומציג את הפקודה CREATE INDEX שמכילה את שם מסד הנתונים, שם הסכימה, שם הטבלה ושמות העמודות. השאילתות שעוקבים אחריהן הן שאילתות שעברו נורמליזציה והוסרו מהן כל הערכים המילוליים.

ההמלצות לאינדקס מוצפנות במנוחה.

מגבלות

אלו המגבלות שחלות על הכלי לייעוץ בנושא אינדקסים ב-Cloud SQL ל-PostgreSQL:

  • הכלי לייעוץ בנושא אינדקסים מספק CREATE INDEXהמלצות בלבד.
  • הכלי לייעוץ בנושא אינדקסים לא תומך במופעים עם ההגדרות הבאות:
    • מכונות במהדורת Cloud SQL Enterprise
    • קריאה של מופעים של עותקים לקריאה בלבד

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

כדי לקבל המלצות מ-Index Advisor, צריך להשתמש במהדורת Cloud SQL Enterprise Plus ולהפעיל את Query Insights במהדורת Cloud SQL Enterprise Plus במכונת Cloud SQL.

תפקידים והרשאות נדרשים

כדי לקבל את ההרשאות שנדרשות לקבלת המלצות מ-Index Advisor, צריך לבקש מהאדמין להקצות לכם את תפקיד ה-IAM‏ Cloud SQL Viewer (roles/cloudsql.viewer) בפרויקט שמארח את מופע Cloud SQL. כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

זהו תפקיד שמוגדר מראש וכולל את ההרשאות שנדרשות לקבלת המלצות מ-Index Advisor. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:

ההרשאות הנדרשות

כדי לקבל המלצות מיועץ האינדקסים, נדרשות ההרשאות הבאות:

  • databaseinsights.recommendations.query
  • databaseinsights.resourceRecommendations.query

יכול להיות שתקבלו את ההרשאות האלה באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.

הפעלת המלצות של כלי הייעוץ בנושא אינדקסים

כדי להפעיל את ההמלצות של הכלי לייעוץ בנושא אינדקסים:

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

    כניסה לדף Cloud SQL Instances

    .
  2. כדי לפתוח את הדף סקירה כללית של מכונה, לוחצים על שם המכונה. .
  3. בכרטיס הגדרות, לוחצים על עריכת ההגדרות.
  4. בקטע Customize your instance (התאמה אישית של המופע), מרחיבים את האפשרות Query insights (תובנות לגבי שאילתות).
  5. מוודאים שהאפשרות הפעלת תובנות לגבי שאילתות מופעלת.
  6. אם האפשרות הפעלת תכונות של Enterprise Plus לא נבחרה, בוחרים אותה.
  7. בוחרים באפשרות הפעלת כלי הייעוץ בנושא אינדקסים.
  8. לוחצים על Save.

השבתת ההמלצות של הכלי לייעוץ בנושא אינדקסים

כדי להשבית את ההמלצות של הכלי לייעוץ בנושא אינדקסים:

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

    כניסה לדף Cloud SQL Instances

  2. כדי לפתוח את הדף סקירה כללית של מכונה, לוחצים על שם המכונה.
  3. בכרטיס הגדרות, לוחצים על עריכת ההגדרות.
  4. בקטע Customize your instance (התאמה אישית של המופע), מרחיבים את האפשרות Query insights (תובנות לגבי שאילתות).
  5. מבטלים את הסימון בתיבת הסימון Enable index advisor.
  6. לוחצים על Save.

צפייה בהמלצות של הכלי לייעוץ בנושא אינדקסים

מערכת Cloud SQL מריצה באופן אוטומטי את הניתוח של הכלי לייעוץ בנושא אינדקסים מעת לעת. כדי לראות המלצות של הכלי לייעוץ בנושא אינדקסים, משתמשים בלוח הבקרה Query insights. בנוסף, אפשר להציג את ההמלצות של הכלי לייעוץ בנושא אינדקסים כטבלה או לבקש ניתוח ודוח לפי דרישה בכל שלב.

צפייה בהמלצות וסינון שלהן בלוח הבקרה 'תובנות לגבי שאילתות'

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

    כניסה לדף Cloud SQL Instances

  2. כדי לפתוח את הדף סקירה כללית של מכונה, לוחצים על שם המכונה.
  3. לוחצים על תובנות לגבי שאילתות.
  4. ההמלצות של הכלי לייעוץ בנושא אינדקסים מוצגות בעמודה המלצה בקטע התגים והשאילתות המובילים.
  5. אופציונלי: כדי להציג רק את השאילתות עם המלצות CREATE INDEX, מוסיפים מסנן להמלצה: יצירת אינדקסים.

צפייה בהמלצות לשאילתה

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

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

    כניסה לדף Cloud SQL Instances

  2. כדי לפתוח את הדף סקירה כללית של מכונה, לוחצים על שם המכונה.
  3. לוחצים על תובנות לגבי שאילתות.
  4. בקטע Top queries and tags (השאילתות והתגים המובילים), לוחצים על Queries (שאילתות).
  5. כדי לקבל פרטים על המלצה לשאילתה, מבצעים אחת מהפעולות הבאות:
    • כדי לקבל מידע נוסף על ההמלצות לשאילתה שנבחרה, כולל המידע הבא, לוחצים על שאילתה:
      • השפעה על הביצועים (גבוהה, בינונית ונמוכה): מהירות השאילתה המשוערת אחרי יצירת כל האינדקסים המומלצים.
      • המלצות: יצירת המלצות לאינדקסים.
      • הטבלאות שיושפעו: מספר הטבלאות שיושפעו כשייווצרו אינדקסים.
      • נפח האחסון הנוסף המשוער שנדרש: נפח האחסון המשוער שנדרש ליצירת כל האינדקסים המומלצים.
      • מספר השאילתות שהושפעו: המספר הכולל של שאילתות בעומס העבודה שהושפעו מההמלצות לגבי האינדקס. אינדקס יכול להועיל לכמה שאילתות.
    • כדי לקבל המלצות מפורטות לגבי יצירת אינדקסים לשיפור הביצועים של שאילתה מסוימת, לוחצים על יצירת אינדקסים בשאילתה הרלוונטית.

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

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

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

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

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

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;

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

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

SELECT * FROM google_db_advisor_recommend_indexes();

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

שימו לב שתפקיד המשתמש שמריץ את הפקודה הזו יכול להשפיע על ההמלצות שמוצגות. ב-Cloud SQL ל-PostgreSQL, ההמלצות שמוצגות מוגבלות להמלצות על אינדקסים שמבוססות על שאילתות שהונפקו על ידי המשתמש הנוכחי במסד הנתונים.

יצירת אינדקסים מומלצים

אפשר ליצור אינדקסים מומלצים ממרכז השליטה של תובנות לגבי שאילתות או מתצוגת טבלה של מסד נתונים.

כדי ליצור אינדקס מומלץ באמצעות לוח הבקרה Query insights:

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

    כניסה לדף Cloud SQL Instances

  2. כדי לפתוח את הדף סקירה כללית של מכונה, לוחצים על שם המכונה.
  3. לוחצים על תובנות לגבי שאילתות.
  4. בטבלה Top dimensions by database load (המאפיינים המובילים לפי עומס על מסד הנתונים), לוחצים על Queries (שאילתות).
  5. לוחצים על יצירת אינדקסים לשאילתה ספציפית.
  6. לוחצים על העתקת כל הפקודות של האינדקס. הפקודות CREATE INDEX מועתקות ללוח.
  7. מתחברים למופע הראשי בשורת הפקודה.
  8. כדי ליצור את האינדקסים המומלצים, מריצים את הפקודות שהועתקו ללוח, לדוגמה:

    CREATE INDEX ON "public"."demo_order" ("customer_id");

העמודה 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");

הצגת השאילתות שהושפעו

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

    כניסה לדף Cloud SQL Instances

  2. כדי לפתוח את הדף סקירה כללית של מכונה, לוחצים על שם המכונה.
  3. לוחצים על תובנות לגבי שאילתות.
  4. בטבלה Top dimensions by database load (המאפיינים המובילים לפי עומס על מסד הנתונים), לוחצים על Queries (שאילתות).
  5. לוחצים על יצירת אינדקסים לשאילתה ספציפית.
  6. לוחצים על הצגת שאילתות מושפעות.
  7. כדי לראות פרטים על שאילתה שהושפעה, לוחצים עליה.

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

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

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

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

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

SELECT google_db_advisor_reset();

מערכת Cloud SQL ל-PostgreSQL מרוקנת מיד את אוסף השאילתות במעקב של הכלי להמלצות על אינדקסים.

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