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