בדף הזה מוסבר על הכלי לייעוץ בנושא אינדקסים ב-Cloud SQL ל-PostgreSQL, ואיך אפשר לראות את ההמלצות שלו לגבי אינדקסים וליישם אותן.
Cloud SQL ל-PostgreSQL מציע כלי מנוהל לחלוטין להמלצות לגבי אינדקסים, שעוקב אחרי השאילתות שמסד הנתונים מטפל בהן באופן קבוע. יועץ האינדקסים מנתח את השאילתות האלה באופן תקופתי כדי להמליץ על אינדקסים חדשים שיכולים לשפר את הביצועים של השאילתות. הכלי לייעוץ בנושא אינדקסים מאפשר לכם לזהות ולפתור בעיות בביצועים של מערכות ושאילתות.
איך פועל הכלי לייעוץ בנושא אינדקסים?
הכלי לייעוץ בנושא אינדקסים עוזר לשפר את עיבוד השאילתות באמצעות הפעולות הבאות:
- להמליץ על קבוצה של אינדקסים עם פקודות SQL ליצירת אינדקסים.
- מספקים נתונים שיעזרו לכם להעריך את האינדקסים המומלצים, למשל, גודל האחסון המשוער וההשפעה של האינדקסים על שאילתה.
CREATE INDEX שמכילה את שם מסד הנתונים, שם הסכימה, שם הטבלה ושמות העמודות. השאילתות שעוקבים אחריהן הן שאילתות שעברו נורמליזציה, וכל הערכים המילוליים הוסרו מהן.
ההמלצות לאינדקס מוצפנות במנוחה.
מגבלות
אלו המגבלות שחלות על הכלי לייעוץ בנושא אינדקסים ב-Cloud SQL ל-PostgreSQL:
- הכלי לייעוץ בנושא אינדקסים מספק
CREATE INDEXהמלצות בלבד. - הכלי לייעוץ בנושא אינדקסים לא תומך במופעים עם ההגדרות הבאות:
- מכונות של Cloud SQL במהדורת Enterprise
- מופעי רפליקה לקריאה
לפני שמתחילים
כדי לקבל המלצות מ-Index Advisor, צריך להשתמש במהדורת Cloud SQL Enterprise Plus ולהפעיל את תובנות לגבי שאילתות במהדורת Cloud SQL Enterprise Plus במכונת Cloud SQL.
תפקידים והרשאות נדרשים
כדי לקבל את ההרשאות שנדרשות לקבלת המלצות מ-Index Advisor, צריך לבקש מהאדמין להקצות לכם ב-IAM את התפקיד Cloud SQL Viewer (roles/cloudsql.viewer) בפרויקט שמארח את מופע Cloud SQL.
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
זהו תפקיד שמוגדר מראש וכולל את ההרשאות שנדרשות כדי לקבל המלצות מיועץ האינדקסים. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:
ההרשאות הנדרשות
כדי לקבל המלצות מיועץ האינדקסים, נדרשות ההרשאות הבאות:
-
databaseinsights.recommendations.query -
databaseinsights.resourceRecommendations.query
יכול להיות שתקבלו את ההרשאות האלה באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.
הפעלת המלצות של כלי הייעוץ בנושא אינדקסים
כדי להפעיל את ההמלצות של הכלי לייעוץ בנושא אינדקסים:
-
נכנסים לדף Cloud SQL Instances במסוף Cloud de Confiance .
. - כדי לפתוח את הדף סקירה כללית של מכונה, לוחצים על שם המכונה. .
- בכרטיס הגדרות, לוחצים על עריכת ההגדרות.
- בקטע Customize your instance (התאמה אישית של המופע), מרחיבים את Query insights (תובנות לגבי שאילתות).
- מוודאים שהאפשרות הפעלת תובנות לגבי שאילתות מופעלת.
- אם האפשרות הפעלת התכונות של Enterprise Plus לא נבחרה, בוחרים אותה.
- בוחרים באפשרות הפעלת הכלי לייעוץ בנושא אינדקסים.
- לוחצים על Save.
השבתת ההמלצות של הכלי לייעוץ בנושא אינדקסים
כדי להשבית את ההמלצות של הכלי לייעוץ בנושא אינדקסים:
-
נכנסים לדף Cloud SQL Instances במסוף Cloud de Confiance .
- כדי לפתוח את הדף סקירה כללית של מכונה, לוחצים על שם המכונה.
- בכרטיס הגדרות, לוחצים על עריכת ההגדרות.
- בקטע Customize your instance (התאמה אישית של המופע), מרחיבים את Query insights (תובנות לגבי שאילתות).
- מבטלים את הסימון בתיבת הסימון Enable index advisor.
- לוחצים על Save.
צפייה בהמלצות של הכלי לייעוץ בנושא אינדקסים
מערכת Cloud SQL מריצה באופן אוטומטי את הניתוח של הכלי לייעוץ בנושא אינדקסים מעת לעת. כדי לראות המלצות של הכלי לייעוץ בנושא אינדקסים, משתמשים בלוח הבקרה Query insights. אפשר גם לראות את ההמלצות של הכלי לייעוץ בנושא אינדקסים כטבלה או לבקש ניתוח ודוח לפי דרישה בכל שלב.
צפייה בהמלצות וסינון שלהן בלוח הבקרה 'תובנות לגבי שאילתות'
-
נכנסים לדף Cloud SQL Instances במסוף Cloud de Confiance .
- כדי לפתוח את הדף סקירה כללית של מכונה, לוחצים על שם המכונה.
- לוחצים על תובנות לגבי שאילתות.
- ההמלצות של הכלי לייעוץ בנושא אינדקסים מוצגות בעמודה המלצה בקטע התגים והשאילתות המובילים.
- אופציונלי: כדי להציג רק את השאילתות עם המלצות
CREATE INDEX, מוסיפים מסנן להמלצה: יצירת אינדקסים.
הצגת המלצות לשאילתה
כדי לראות המלצות לאינדקס עבור שאילתה ספציפית, פועלים לפי השלבים הבאים:
-
נכנסים לדף Cloud SQL Instances במסוף Cloud de Confiance .
- כדי לפתוח את הדף סקירה כללית של מכונה, לוחצים על שם המכונה.
- לוחצים על תובנות לגבי שאילתות.
- בקטע Top queries and tags (השאילתות והתגים המובילים), לוחצים על Queries (שאילתות).
- כדי לקבל פרטים על המלצה לשאילתה, מבצעים אחת מהפעולות הבאות:
- כדי לקבל מידע נוסף על ההמלצות לשאילתה שנבחרה, כולל המידע הבא, לוחצים על שאילתה:
- ההשפעה על הביצועים (גבוהה, בינונית ונמוכה): מהירות השאילתה המשוערת אחרי יצירת כל האינדקסים המומלצים.
- המלצות: יצירת המלצות לאינדקסים.
- הטבלאות שיושפעו: מספר הטבלאות שיושפעו כשייווצרו אינדקסים.
- נפח האחסון הנוסף המשוער שנדרש: נפח האחסון המשוער שנדרש ליצירת כל האינדקסים המומלצים.
- מספר השאילתות שהושפעו: המספר הכולל של השאילתות בעומס העבודה שהושפעו מההמלצות ליצירת אינדקסים. אינדקס יכול להועיל לכמה שאילתות.
- כדי לקבל המלצות מפורטות לגבי יצירת אינדקסים לשיפור הביצועים של שאילתה מסוימת, לוחצים על יצירת אינדקסים בשאילתה הרלוונטית.
- כדי לקבל מידע נוסף על ההמלצות לשאילתה שנבחרה, כולל המידע הבא, לוחצים על שאילתה:
צפייה בהמלצות בתצוגת טבלה של מסד נתונים
אפשר לקרוא את התוצאות שלו באמצעות תצוגות הטבלה הבאות שנמצאות בכל אחד ממסדי הנתונים:
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 דקות אחרי שמפעילים את Index advisor כדי להריץ Analysis ידני. כדי לעשות את זה, מריצים את פונקציית ה-SQL הבאה:
SELECT * FROM google_db_advisor_recommend_indexes();
אחרי שהניתוח מסתיים, ב-Cloud SQL ל-PostgreSQL מוצג דוח בפורמט טבלה עם תיאור של כל האינדקסים המומלצים והערכה של נפח האחסון שיידרש להם. אם בניתוח לא נמצאו אינדקסים חדשים להמלצה, התצוגה לא תכיל שורות.
חשוב לזכור שתפקיד המשתמש שמריץ את הפקודה הזו יכול להשפיע על ההמלצות שמוצגות. ב-Cloud SQL ל-PostgreSQL, ההמלצות שמוצגות מוגבלות להמלצות על אינדקסים שמבוססות על שאילתות שהונפקו על ידי המשתמש הנוכחי במסד הנתונים.
יצירת אינדקסים מומלצים
אפשר ליצור אינדקסים מומלצים מלוח הבקרה 'תובנות לגבי שאילתות' או מתצוגת טבלה של מסד נתונים.
יצירת אינדקס מומלץ באמצעות לוח הבקרה Query insights
כדי ליצור אינדקס מומלץ באמצעות לוח הבקרה Query insights:
-
נכנסים לדף Cloud SQL Instances במסוף Cloud de Confiance .
- כדי לפתוח את הדף סקירה כללית של מכונה, לוחצים על שם המכונה.
- לוחצים על תובנות לגבי שאילתות.
- בטבלה Top dimensions by database load (המאפיינים המובילים לפי עומס מסד הנתונים), לוחצים על Queries (שאילתות).
- לוחצים על Create Indexes (יצירת אינדקסים) בשאילתה ספציפית.
- לוחצים על העתקת כל הפקודות של האינדקס. הפקודות
CREATE INDEXמועתקות ללוח. - מתחברים למופע הראשי בשורת הפקודה.
כדי ליצור את האינדקסים המומלצים, מריצים את הפקודות שהועתקו ללוח, לדוגמה:
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");
הצגת השאילתות שהושפעו
-
נכנסים לדף Cloud SQL Instances במסוף Cloud de Confiance .
- כדי לפתוח את הדף סקירה כללית של מכונה, לוחצים על שם המכונה.
- לוחצים על תובנות לגבי שאילתות.
- בטבלה Top dimensions by database load (המאפיינים המובילים לפי עומס מסד הנתונים), לוחצים על Queries (שאילתות).
- לוחצים על יצירת אינדקסים לשאילתה ספציפית.
- לוחצים על הצגת שאילתות מושפעות.
- כדי לראות פרטים על שאילתה שהושפעה, לוחצים עליה.
צפייה בשאילתות במעקב של Index advisor
התצוגה google_db_advisor_workload_statements מכילה רשימה של כל השאילתות שהכלי לייעוץ בנושא אינדקסים עקב אחריהן, וגם מטא-נתונים חשובים לגבי כל אחת מהן, כמו המדדים הבאים:
- מספר הפעמים שכל שאילתה בוצעה במופע
- הזמן הכולל שמוקצה למופע לעיבוד השאילתות האלה
- המזהה של משתמש מסד הנתונים שמריץ את השאילתות האלה
ניקוי השאילתות במעקב של Index advisor
כדי לאפס את ההתנהגות של הכלי לייעוץ בנושא אינדקסים במופע, צריך לנקות את השאילתות שהוא עוקב אחריהן. כדי לעשות את זה, מריצים את פונקציית ה-SQL הבאה:
SELECT google_db_advisor_reset();
Cloud SQL ל-PostgreSQL מרוקן מיד את אוסף השאילתות במעקב של הכלי לייעוץ בנושא אינדקסים.