בדף הזה מוסבר איך להשתמש בלוח הבקרה של Query Insights כדי לזהות ולנתח בעיות בביצועים של השאילתות.
מבוא
בעזרת תובנות לגבי שאילתות אפשר לזהות, לאבחן ולמנוע בעיות בביצועים של שאילתות במסדי נתונים של Cloud SQL. הוא תומך במעקב אינטואיטיבי ומספק מידע לאבחון שעוזר לכם לזהות את שורש הבעיה בביצועים, ולא רק לגלות אותה.
בעזרת תובנות לגבי שאילתות, אתם יכולים לעקוב אחרי הביצועים ברמת האפליקציה ולזהות את המקור של שאילתה בעייתית במקבץ האפליקציה לפי מודל, תצוגה, בקר, נתיב, משתמש ומארח. כלי התובנות לגבי שאילתות יכול להשתלב עם הכלים והשירותים הקיימים שלכם לניטור אפליקציות (APM) באמצעות ממשקי API ותקנים פתוחים של Cloud de Confiance by S3NS. כך תוכלו לעקוב אחרי בעיות בשאילתות ולפתור אותן באמצעות הכלי המועדף עליכם.
הכלי Query Insights עוזר לשפר את הביצועים של שאילתות Cloud SQL באמצעות השלבים הבאים:
- הצגת העומס על מסד הנתונים של השאילתות המובילות
- זיהוי שאילתה או תג שעלולים להיות בעייתיים
- בדיקת השאילתה או התג כדי לזהות בעיות
- בדיקת מעקב שנוצר על ידי שאילתה לדוגמה
תובנות לגבי שאילתות ב-Cloud SQL Enterprise Plus
אם אתם משתמשים במהדורת Cloud SQL Enterprise Plus, אתם יכולים לגשת ליכולות נוספות ב-Query Insights כדי לבצע אבחון מתקדם של ביצועי השאילתות. בנוסף ליכולות הרגילות של לוח הבקרה של Query Insights, ב-Query Insights למהדורת Cloud SQL Enterprise Plus אפשר גם:
- תיעוד וניתוח של אירועי המתנה לכל השאילתות שבוצעו.
- לסנן את העומס המצטבר על מסד הנתונים לפי מאפיינים נוספים, כמו שאילתות, תגים, סוגי אירועי המתנה ועוד.
- תיעוד תוכניות לביצוע שאילתות לכל השאילתות שהופעלו.
- דגימה של עד 200 תוכניות לביצוע שאילתות בדקה.
- אפשר לתעד טקסט ארוך יותר של שאילתות, עד 1MB.
- לקבל עדכונים על מדדים כמעט בזמן אמת (תוך שניות).
- לשמור את המדדים למשך 30 ימים.
- לקבל המלצות לאינדקסים מהכלי Index advisor.
- סיום סשן או עסקה ארוכה בשאילתות פעילות.
- גישה לפתרון בעיות בעזרת AI (גרסת טרום-השקה (Preview)).
בטבלה הבאה מוצגת השוואה בין הדרישות הפונקציונליות והיכולות של תובנות לגבי שאילתות ב-Cloud SQL Enterprise, לבין תובנות לגבי שאילתות ב-Cloud SQL Enterprise Plus.
| אזור ההשוואה | תובנות לגבי שאילתות ב-Cloud SQL מהדורת Enterprise | תובנות לגבי שאילתות ב-Cloud SQL Enterprise Plus |
|---|---|---|
| גרסאות נתמכות של מסדי נתונים | MySQL 5.7 ואילך | MySQL מגרסה 8.0 ואילך |
| סוגי מכונות נתמכים | נתמך בכל סוגי המכונות | לא נתמך במכונות עם ליבה משותפת (shared-core) |
| אזורים נתמכים | מיקומים אזוריים של Cloud SQL | מיקומים אזוריים של Cloud SQL Enterprise Plus edition |
| תקופת השמירה של המדדים | 7 ימים | 30 ימים |
| אורך השאילתה המקסימלי | 4,500 בייטים | 1MB |
| המספר המקסימלי של דגימות בתוכנית לביצוע שאילתה | 20 | 200 |
| ניתוח אירועי המתנה | לא זמין | זמינות |
| המלצות של Index advisor | לא זמין | זמינות |
| סיום סשנים או טרנזקציות ארוכות בשאילתות פעילות | לא זמין | זמינות |
| פתרון בעיות בעזרת AI (גרסת טרום-השקה (Preview)) | לא זמין | זמינות |
| מגבלות עוצמה (cardinality) של שאילתות | דיווח על הנתונים הסטטיסטיים המצטברים של עד 100 השאילתות המובילות, עם שילוב של כתובות IP של לקוחות, מסדי נתונים, תגי אפליקציות, שמות משתמשים וטקסט של שאילתות ליום. | מדווח על הנתונים הסטטיסטיים המצטברים של עד 4,000 השאילתות המובילות, עם שילוב של כתובות ה-IP של הלקוחות, מסדי נתונים, שמות משתמשים ומזהי שאילתות לדקה. |
הפעלת תובנות לגבי שאילתות ב-Cloud SQL Enterprise Plus
כדי להפעיל את תובנות השאילתות במהדורת Cloud SQL Enterprise Plus, בוחרים באפשרות Enable Enterprise Plus features כשמפעילים את תובנות השאילתות במכונה של מהדורת Cloud SQL Enterprise Plus.
תמחור
אין עלות נוספת לשימוש ב-Query Insights במכונות של Cloud SQL Enterprise או Cloud SQL Enterprise Plus.
דרישות האחסון
התכונה 'תובנות לגבי שאילתות' ב-Cloud SQL מהדורת Enterprise לא תופסת מקום באחסון של מכונת Cloud SQL. המדדים מאוחסנים ב-Cloud Monitoring. למידע על בקשות API, קראו את התמחור של Cloud Monitoring. ב-Cloud Monitoring יש רמה שאתם יכולים להשתמש בה ללא עלות נוספת.
ב-Query Insights למהדורת Cloud SQL Enterprise Plus, נתוני המדדים נשמרים באותו דיסק שמחובר למכונה של Cloud SQL, וצריך להשאיר את ההגדרה של הגדלת נפח האחסון באופן אוטומטי מופעלת.
כדי לאחסן נתונים של שבעה ימים, צריך נפח אחסון של כ-45GB. למשך 30 יום, צריך בערך 180GB. התכונה "תובנות לגבי שאילתות" במהדורת Cloud SQL Enterprise Plus משתמשת בזיכרון RAM בנפח של עד 130MB. המדדים אמורים להיות זמינים בתובנות לגבי שאילתות תוך דקה מסיום השאילתה. בכפוף לעמלות האחסון הרלוונטיות.מגבלות
המגבלות הבאות חלות על תובנות לגבי שאילתות במכונות של Cloud SQL Enterprise Plus מהדורת Plus:
- אם המכונה שלכם נמצאת תחת עומס מערכת כבד, יכול להיות שהשאילתות שלכם ייטענו לאט או יסתיימו עקב זמן קצוב לתפוגה כשתשלחו שאילתות לנתוני מדדים במרכז הבקרה Query Insights.
- אם יוצרים מחדש רפליקה לקריאה בלבד, היסטוריית המדדים הקודמת שלה לא נשמרת.
- כשמשחזרים מגיבוי ישן יותר מכונה של Query Insights ל-Cloud SQL Enterprise Plus מהדורת Plus, יכול להיות שהמדדים שנאספו בין מועד הגיבוי למועד שחזור המכונה יאבדו. לדוגמה, אם משחזרים את המכונה ב-30 באפריל באמצעות גיבוי שנוצר ב-25 באפריל, יכול להיות שכל המדדים בין 25 באפריל ל-30 באפריל יאבדו.
- כשהמעקב אחרי כתובת ה-IP של הלקוח מופעל, שינוי בכתובות ה-IP של הלקוח עלול לגרום לפער בתרשימים של תובנות לגבי שאילתות. המגבלה הזו חלה על מכונות של Cloud SQL Enterprise Plus ו-Cloud SQL Enterprise. כדי לפתור את הבעיה, אפשר להפעיל מחדש את המכונה או להשבית את המעקב אחרי כתובות ה-IP של הלקוחות.
לפני שמתחילים
לפני שמשתמשים בתובנות לגבי שאילתות, צריך לבצע את הפעולות הבאות.
- מוסיפים את התפקידים וההרשאות הנדרשים.
- הפעלת Cloud Trace API.
- אם אתם משתמשים בתובנות לגבי שאילתות במהדורת Cloud SQL Enterprise Plus, ודאו שהאפשרות Enable automatic storage increases מופעלת במכונה.
תפקידים והרשאות נדרשים
כדי לקבל את ההרשאות שנדרשות לגישה לנתונים היסטוריים של הרצת שאילתות בלוח הבקרה של Query Insights, צריך לבקש מהאדמין להקצות לכם את התפקידים הבאים ב-IAM בפרויקט שמארח את המכונה של Cloud SQL:
- צפייה ב-Database Insights (
roles/databaseinsights.viewer) - צפייה ב-Cloud SQL (
roles/cloudsql.viewer)
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
הפעלת Cloud Trace API
כדי לראות את התוכניות לביצוע שאילתות ואת התצוגות שלהן מקצה לקצה, צריך להפעיל את Cloud Trace API בפרויקט ב- Cloud de Confiance . ההגדרה הזו מאפשרת לפרויקט ב-Cloud de Confiance לקבל נתוני מעקב ממקורות מאומתים ללא עלות נוספת. הנתונים האלה יכולים לעזור לכם לזהות ולאבחן בעיות בביצועים במכונה שלכם.
כדי לוודא ש-Cloud Trace API מופעל:
- במסוף Cloud de Confiance , נכנסים לקטע APIs and Services:
- לוחצים על Enable APIs and Services.
- בשורת החיפוש, מקלידים
Cloud Trace API. - אם מוצג הכיתוב API enabled, סימן שה-API מופעל ואין צורך לעשות דבר. אחרת, לוחצים על Enable.
הפעלת הגדלה אוטומטית של נפח האחסון
אם אתם משתמשים בתובנות לגבי שאילתות במהדורת Cloud SQL Enterprise Plus, ודאו שההגדרה הפעלה של הגדלת נפח האחסון באופן אוטומטי נשארת מופעלת. כברירת מחדל, האפשרות הזו מופעלת במכונות של Cloud SQL.
אם השבתתם בעבר את ההגדרה הזו במכונה ואתם רוצים להפעיל את Query Insights במהדורת Cloud SQL Enterprise Plus, קודם תצטרכו להפעיל מחדש את ההגדלה האוטומטית של נפח האחסון. במהדורת Cloud SQL Enterprise Plus אי אפשר להשבית את ההגדלה האוטומטית של נפח האחסון ולהפעיל את Query Insights.
הפעלת תובנות לגבי שאילתות
לפני שמפעילים את תובנות השאילתות, חשוב לשים לב לדרישות הבאות לגבי הפעלה מחדש:
אם המכונה פועלת עם גרסת התחזוקה
20251004.01_RC06של MySQL או גרסה קודמת, ואתם מפעילים את Query Insights למהדורת Cloud SQL Enterprise Plus, המכונה תופעל מחדש. יכול להיות שיעברו כמה דקות עד שהמכונה תהיה זמינה שוב. כתוצאה מכך, כל הפעולות האחרות מושעות באופן זמני, כולל:- בדיקות תקינות
- רישום ביומן
- מעקב
- פעולות אחרות במכונות
אם במכונה פועלת גרסת התחזוקה
20251004.01_RC07של MySQL או גרסה מאוחרת יותר, ואתם מפעילים את תובנות לגבי שאילתות, לא צריך להפעיל מחדש את המכונה והפעולות שלה נשארות זמינות.
המסוף
הפעלת תובנות לגבי שאילתות במכונה
-
נכנסים לדף Cloud SQL Instances במסוף Cloud de Confiance .
- כדי לפתוח את הדף Overview של מכונה, לוחצים על שם המכונה.
- במשבצת הגדרה, לוחצים על עריכת ההגדרה.
- בקטע Customize your instance, מרחיבים את Query insights.
- מסמנים את התיבה Enable Query insights.
- אופציונלי: בוחרים תכונות נוספות למכונה. חלק מהתכונות זמינות רק במהדורת Cloud SQL Enterprise Plus.
- לוחצים על Save.
| תכונה | תיאור | Cloud SQL מהדורת Enterprise | מהדורת Cloud SQL Enterprise Plus |
|---|---|---|---|
| לכידת ביצועים | סמנו את תיבת הסימון הזו כדי להפעיל את תיעוד הביצועים, שיוצר תמונת מצב של מסד הנתונים כשמזוהות בעיות בביצועים על סמך טריגרים מבוססי-סף שאפשר להגדיר. אפשר להשתמש בתיעוד הביצועים כדי לצלם תמונת מצב של כל המערכת כשמדדים רגילים לא מספיקים. אפשר גם להשתמש בתיעוד הביצועים כדי לסיים באופן אוטומטי טרנזקציות שנמשכות זמן רב. מידע נוסף מופיע במאמר סקירה כללית על תיעוד הביצועים ב-Cloud SQL. |
זמין
ברירת מחדל: מופעל עם תובנות לגבי שאילתות, אבל אפשר להשבית בנפרד |
זמין
ברירת מחדל: מופעל עם תובנות לגבי שאילתות, אבל אפשר להשבית בנפרד |
| הפעלת התכונות של Enterprise Plus | כדי להפעיל את Query Insights במהדורת Cloud SQL Enterprise Plus, מסמנים את התיבה הזו. ב-Query Insights למהדורת Cloud SQL Enterprise Plus אפשר לסיים סשנים וטרנזקציות ארוכות בשאילתות פעילות, להפעיל המלצות של Index Advisor כדי להאיץ את עיבוד השאילתות, ולהאריך את תקופת השמירה של נתוני המדדים ל-30 ימים. ההמלצות של Index advisor מופעלות באופן אוטומטי כשמפעילים את Query Insights במהדורת Cloud SQL Enterprise Plus. כדי להשבית את ההמלצות של Index advisor, מבטלים את הסימון בתיבה הזו. כדי להפעיל את ההמלצות של Index Advisor ואת פתרון הבעיות בעזרת AI (גרסת טרום-השקה (Preview)), צריך לסמן את התיבה הזו. | לא זמין | זמינות
ברירת מחדל: מושבתת |
| פתרון בעיות בעזרת AI | מסמנים את התיבה הזו כדי להפעיל זיהוי אנומליות בביצועים, ניתוח של שורש הבעיה וניתוח מצב, ולקבל המלצות לפתרון בעיות בשאילתות ובמסד הנתונים. התכונה הזאת נמצאת בגרסת טרום-השקה (Preview), ואפשר להפעיל אותה ולגשת אליה רק באמצעות מסוף Cloud de Confiance . מידע נוסף מופיע במאמר מעקב ופתרון בעיות בעזרת AI. | לא זמין | זמינות
ברירת מחדל: מושבתת |
| שמירת כתובות ה-IP של הלקוחות | מסמנים את התיבה הזו כדי לאפשר אחסון של כתובות ה-IP של הלקוחות.
ב-Cloud SQL אפשר לאחסן את כתובות ה-IP שמהן מגיעות השאילתות, ולקבץ את הנתונים האלה כדי להריץ עליהם מדדים.
השאילתות מגיעות מיותר ממארח אחד. בדיקת התרשימים של שאילתות מכתובות ה-IP של הלקוח יכולה לעזור לזהות את מקור הבעיה.
הערה: כשמעקב אחר כתובות IP של לקוחות מופעל, שינוי בכתובות ה-IP של הלקוחות עלול לגרום לפער בתרשימים של תובנות לגבי שאילתות. כדי לפתור את הבעיה, אפשר להפעיל מחדש את המכונה או להשבית את המעקב אחרי כתובות ה-IP של הלקוחות. |
זמינות
ברירת מחדל: מושבתת |
זמינות
ברירת מחדל: מושבתת |
| תגים של אפליקציות בחנות | כדי להפעיל את אחסון התגים של האפליקציה, מסמנים את התיבה הזו. אחסון תגי אפליקציות עוזר לכם לקבוע אילו ממשקי API ונתיבי MVC (מודל-תצוגה-בקרה) שולחים בקשות, ולקבץ את הנתונים כדי להריץ עליהם מדדים. כדי להשתמש באפשרות הזו, צריך להוסיף הערות לשאילתות עם קבוצה ספציפית של תגים באמצעות ספריית הכלים האוטומטיים של מיפוי אובייקטים יחסי (ORM) בקוד פתוח של sqlcommenter. המידע הזה עוזר לתובנות לגבי שאילתות לזהות את מקור הבעיה ואת ה-MVC שממנו הבעיה מגיעה. נתיבי אפליקציות עוזרים לכם לעקוב אחרי האפליקציות. | זמינה
ברירת מחדל: מושבתת |
זמינות
ברירת מחדל: מושבתת |
| התאמה אישית של אורך השאילתות |
מסמנים את התיבה הזו כדי להתאים אישית את מגבלת האורך של מחרוזת שאילתה.
שאילתות ארוכות יותר שימושיות יותר לשאילתות ניתוח, אבל הן גם דורשות יותר זיכרון.
כל מחרוזת שאילתה שחורגת מהמגבלה שצוינה נחתכת בתצוגה. כשמשנים את מגבלת האורך של השאילתה, צריך להפעיל מחדש את המכונה. עדיין אפשר להוסיף תגים לשאילתות שחורגות ממגבלת האורך. במכונות של Cloud SQL מהדורת Enterprise, כדי לתעד שאילתות באורך של יותר מ- 1024 בייטים צריך להגדיר את הדגל לניהול מסד הנתונים max_digest_length לפחות לאותו ערך (עד 4500 בייטים).
במכונות של Cloud SQL Enterprise Plus, Cloud SQL מנהל את max_digest_length באופן אוטומטי (עד 1MB).
|
אפשר להגדיר את המגבלה בבייטים, מ-256 בייטים עד 4500 בייטים.
ברירת מחדל: 1024.
|
אפשר לציין מגבלה בבייטים מ-1 עד 1048576.
ברירת מחדל: 1024 בייטים (1KB).
|
| הגדרת תדירות הדגימה המקסימלית |
מסמנים את התיבה הזו כדי להגדיר את תדירות הדגימה המקסימלית. תדירות הדגימה היא מספר הדגימות של תוכניות לביצוע שאילתות שנתפסות בדקה בכל מסדי הנתונים במכונה. אם תגדילו את תדירות הדגימה, סביר להניח שתקבלו יותר נקודות על הגרף, אבל יכול להיות שהתקורה של הביצועים תגדל.
כדי להשבית את הדגימה, מגדירים את הערך ל-0.
|
אתם יכולים לשנות את הערך הזה למספר מ-0 עד 20.
ברירת מחדל: 5.
|
אפשר להגדיל את המקסימום ל-200 כדי לספק יותר נקודות על הגרף.
ברירת מחדל: 5.
|
הפעלת תובנות לגבי שאילתות בכמה מכונות
-
נכנסים לדף Cloud SQL Instances במסוף Cloud de Confiance .
- לוחצים על התפריט More Actions בכל שורה.
- בוחרים באפשרות Enable Query insights.
- בתיבת הדו-שיח, מסמנים את התיבה Enable Query insights for multiple instances.
- לוחצים על Enable.
- בתיבת הדו-שיח שמופיעה, בוחרים את המכונות שרוצים להפעיל בהן את Query Insights.
- לוחצים על Enable Query insights.
gcloud
כדי להפעיל את תובנות השאילתות במכונה של Cloud SQL באמצעות gcloud, מריצים את gcloud sql instances patch עם הדגל --insights-config-query-insights-enabled באופן הבא, אחרי שמחליפים את INSTANCE_ID במזהה המכונה.
אם מפעילים את Query Insights במכונה של Cloud SQL Enterprise Plus, ההמלצות של Index Advisor מופעלות באופן אוטומטי.
כשמפעילים את התכונה "תובנות לגבי שאילתות", המערכת מפעילה באופן אוטומטי את תיעוד הביצועים של MySQL עם ערכי ברירת המחדל של הטריגרים לתיעוד הביצועים. אפשר להגדיר את תיעוד הביצועים
gcloud sql instances patch INSTANCE_ID \ --insights-config-query-insights-enabled
בנוסף, צריך להשתמש באחד או יותר מהדגלים האופציונליים הבאים:
--insights-config-record-client-addressמאחסן את כתובות ה-IP של הלקוחות שמהן מגיעות השאילתות, ועוזר לכם לקבץ את הנתונים האלה כדי להריץ עליהם מדדים. השאילתות מגיעות מיותר ממארח אחד. בדיקת תרשימים של שאילתות מכתובות ה-IP של הלקוח יכולה לעזור לזהות את מקור הבעיה.
הערה: כשמעקב אחרי כתובות ה-IP של הלקוחות מופעל, שינוי בכתובות ה-IP של הלקוחות עלול לגרום לפער בתרשימים של תובנות לגבי שאילתות. כדי לפתור את הבעיה, אפשר להפעיל מחדש את המכונה או להשבית את המעקב אחרי כתובות ה-IP של הלקוחות.
--insights-config-record-application-tagsשומר תגי אפליקציות שעוזרים לכם לקבוע אילו ממשקי API ונתיבי MVC (מודל-תצוגה-בקר) שולחים בקשות, ולקבץ את הנתונים כדי להריץ עליהם מדדים. כדי להשתמש באפשרות הזו, צריך להוסיף הערות לשאילתות עם קבוצה ספציפית של תגים. כדי לעשות את זה, אפשר להשתמש בספריית הכלים האוטומטיים למיפוי אובייקטים יחסי (ORM) בקוד פתוח sqlcommenter. המידע הזה עוזר ל-Query Insights לזהות את מקור הבעיה ואת ה-MVC שממנו הבעיה מגיעה. נתיבי אפליקציות עוזרים לכם לעקוב אחרי האפליקציות.
--insights-config-query-string-lengthמגדירה את מגבלת ברירת המחדל לאורך השאילתה. שאילתות ארוכות יותר שימושיות יותר לשאילתות ניתוח, אבל הן גם דורשות יותר זיכרון. כשמשנים את מגבלת האורך של השאילתה, צריך להפעיל מחדש את המכונה. אפשר להוסיף תגים לשאילתות שחורגות ממגבלת האורך.
במכונות של Cloud SQL מהדורת Enterprise, כדי לתעד שאילתות באורך של יותר מ-1024בייטים, צריך להגדיר את הדגל לניהול מסד הנתוניםmax_digest_lengthלפחות לאותו ערך (עד4500בייטים). במכונות של Cloud SQL Enterprise Plus, Cloud SQL מנהל אתmax_digest_lengthבאופן אוטומטי (עד 1MB). במהדורת Cloud SQL Enterprise, אפשר לציין ערך בבייטים מ-256עד4500. אורך השאילתה שמוגדר כברירת מחדל הוא1024בייטים. במהדורת Cloud SQL Enterprise Plus, אפשר לציין מגבלה בבייטים מ-1עד1048576. ערך ברירת המחדל הוא1024בייטים (1KB).--insights-config-query-plans-per-minuteכברירת מחדל, המערכת מתעדת עד 5 דגימות של תוכניות לביצוע שאילתות בכל דקה בכל מסדי הנתונים במכונה. הגדלת תדירות הדגימה תספק לכם יותר נקודות על הגרף, אבל עלולה להוסיף תקורה לביצועים. כדי להשבית את הדגימה, מגדירים את הערך הזה ל-
0. ב-Cloud SQL מהדורת Enterprise, אפשר לשנות את הערך מ-0 ל-20. במהדורת Cloud SQL Enterprise Plus, אפשר להגדיל את המספר המקסימלי עד ל-200 כדי לספק יותר נקודות נתונים.
מחליפים את מה שכתוב בשדות הבאים:
- INSIGHTS_CONFIG_QUERY_STRING_LENGTH: אורך מחרוזת השאילתה שתישמר, בבייטים.
- API_TIER_STRING: ההגדרה המותאמת אישית של המכונה שבה רוצים להשתמש.
- REGION: האזור של המכונה.
gcloud sql instances patch INSTANCE_ID \ --insights-config-query-insights-enabled \ --insights-config-query-string-length=INSIGHTS_CONFIG_QUERY_STRING_LENGTH \ --insights-config-query-plans-per-minute=QUERY_PLANS_PER_MINUTE \ --insights-config-record-application-tags \ --insights-config-record-client-address \ --tier=API_TIER_STRING \ --region=REGION
REST v1
כדי להפעיל את תובנות לגבי שאילתות במכונה של Cloud SQL באמצעות ה-API בארכיטקטורת REST, מפעילים את ה-method instances.patch עם ההגדרות של insightsConfig.
אם מפעילים את Query Insights במכונה של Cloud SQL Enterprise Plus, ההמלצות של Index Advisor מופעלות באופן אוטומטי.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט
- INSTANCE_ID: מזהה המכונה
ה-method של ה-HTTP וכתובת ה-URL:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID
תוכן בקשת JSON:
{
"settings" : {
"insightsConfig" : {
"queryInsightsEnabled" : true,
"recordClientAddress" : true,
"recordApplicationTags" : true,
"queryStringLength" : 1024,
"queryPlansPerMinute" : 20,
}
}
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2025-03-28T22:43:40.009Z",
"operationType": "UPDATE",
"name": "OPERATION_ID",
"targetId": "INSTANCE_ID",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID"
}
Terraform
כדי להפעיל את Query Insights במכונה של Cloud SQL באמצעות Terraform, מגדירים את הדגל query_insights_enabled לערך true.
אם מפעילים את Query Insights במכונה של Cloud SQL Enterprise Plus, ההמלצות של Index Advisor מופעלות באופן אוטומטי.
אפשר גם להשתמש באחד או יותר מהדגלים האופציונליים הבאים:
-
query_string_length: ב-Cloud SQL מהדורת Enterprise, אפשר לציין ערך בבייטים מ-256עד4500. אורך השאילתה שמוגדר כברירת מחדל הוא1024בייטים. במהדורת Cloud SQL Enterprise Plus, אפשר לציין מגבלה בבייטים מ-1עד1048576. ערך ברירת המחדל הוא1024בייטים (1KB).
במכונות של Cloud SQL מהדורת Enterprise, כדי לתעד שאילתות באורך של יותר מ-1024בייטים צריך להגדיר את הדגל לניהול מסד הנתוניםmax_digest_lengthלפחות לאותו ערך (עד4500בייטים). במכונות של Cloud SQL Enterprise Plus, Cloud SQL מנהל אתmax_digest_lengthבאופן אוטומטי (עד 1MB). -
record_application_tags: מגדירים את הערךtrueאם רוצים לתעד תגי אפליקציות מהשאילתה. -
record_client_address: מגדירים את הערךtrueאם רוצים לתעד את כתובת ה-IP של הלקוח. ערך ברירת המחדל הואfalse. -
query_plans_per_minute: במהדורת Cloud SQL Enterprise, אפשר להגדיר את הערך מ-0עד20. ערך ברירת המחדל הוא5. במהדורת Cloud SQL Enterprise Plus, אפשר להגדיל את הערך המקסימלי עד ל-200כדי לספק יותר נקודות נתונים.
הנה דוגמה:
resource "google_sql_database_instance" "INSTANCE_NAME" { name = "INSTANCE_NAME" database_version = "MYSQL_VERSION" region = "REGION" root_password = "PASSWORD" deletion_protection = false # set to true to prevent destruction of the resource settings { tier = "DB_TIER" insights_config { query_insights_enabled = true query_string_length = 2048 # Optional record_application_tags = true # Optional record_client_address = true # Optional query_plans_per_minute = 10 # Optional } } }
כך מחילים את ההגדרות של Terraform בפרויקט ב- Cloud de Confiance :
הכנת Cloud Shell
- מפעילים את Cloud Shell.
-
מגדירים את פרויקט ברירת המחדל ב- Cloud de Confiance שבו רוצים להחיל את ההגדרות של Terraform.
תצטרכו להריץ את הפקודה הזו רק פעם אחת לכל פרויקט, ותוכלו לעשות זאת בכל ספרייה.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
אם תגדירו ערכים ספציפיים בקובץ התצורה של Terraform, הם יבטלו את ערכי ברירת המחדל של משתני הסביבה.
הכנת הספרייה
לכל קובץ תצורה של Terraform צריכה להיות ספרייה משלו (שנקראת גם מודול ברמה הבסיסית).
-
יוצרים ספרייה חדשה ב-Cloud Shell ובה יוצרים קובץ חדש. שם הקובץ חייב לכלול את הסיומת
.tf, למשלmain.tf. במדריך הזה, הקובץ נקראmain.tf.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
אם אתם עוקבים אחרי המדריך, תוכלו להעתיק את הקוד לדוגמה בכל קטע או שלב.
מעתיקים את הקוד לדוגמה בקובץ
main.tfהחדש שיצרתם.לחלופין, אפשר גם להעתיק את הקוד מ-GitHub. כדאי לעשות את זה כשקטע הקוד של Terraform הוא חלק מפתרון מקצה לקצה.
- בודקים את הפרמטרים לדוגמה ומשנים אותם בהתאם לסביבה שלכם.
- שומרים את השינויים.
-
מפעילים את Terraform. צריך לעשות זאת רק פעם אחת לכל ספרייה.
terraform init
אופציונלי: תוכלו לכלול את האפשרות
-upgrade, כדי להשתמש בגרסה העדכנית ביותר של הספק של Google:terraform init -upgrade
החלה של השינויים
-
בודקים את ההגדרות ומוודאים שהמשאבים שמערכת Terraform תיצור או תעדכן תואמים לציפיות שלכם:
terraform plan
מתקנים את ההגדרות לפי הצורך.
-
מריצים את הפקודה הבאה ומזינים
yesבהודעה שמופיעה, כדי להחיל את הגדרות Terraform:terraform apply
ממתינים עד שב-Terraform תוצג ההודעה "Apply complete!".
- פותחים את הפרויקט ב- Cloud de Confiance כדי להציג את התוצאות. במסוף Cloud de Confiance , נכנסים למשאבים בממשק המשתמש כדי לוודא שהם נוצרו או עודכנו ב-Terraform.
המדדים אמורים להיות זמינים בתובנות לגבי שאילתות תוך כמה דקות מסיום השאילתה. מדיניות שמירת הנתונים של Cloud Monitoring
המעקבים של Query Insights מאוחסנים ב-Cloud Trace. מדיניות שמירת הנתונים של Cloud Trace
הצגת לוח הבקרה של Query Insights
בלוח הבקרה של Query Insights מוצג עומס השאילתות על סמך הגורמים שבחרתם. עומס השאילתות הוא מדד של העבודה הכוללת של כל השאילתות במכונה בטווח התאריכים שנבחר. בלוח הבקרה יש כמה מסננים שמאפשרים לראות את עומס השאילתות.
כדי לפתוח את לוח הבקרה Query insights:
- כדי לפתוח את הדף Overview של מכונה, לוחצים על שם המכונה.
- בתפריט הניווט של Cloud SQL, לוחצים על Query insights או על Go to Query insights for more in-depth info on queries and performance בדף Instance overview.
לוח הבקרה Query Insights נפתח. בהתאם למהדורת Cloud SQL שבה אתם משתמשים (Cloud SQL מהדורת Enterprise או Cloud SQL מהדורת Enterprise Plus), בלוח הבקרה של Query Insights מוצג המידע הבא על המכונה:
מהדורת Cloud SQL Enterprise Plus
- All queries: העומס על מסד הנתונים בכל השאילתות בטווח התאריכים שנבחר. כל שאילתה מקודדת בצבע משלה. כדי לראות נקודת זמן של שאילתה ספציפית, מציבים את הסמן מעל התרשים של השאילתה.
- מסד נתונים: סינון עומס השאילתות במסד נתונים ספציפי או בכל מסדי הנתונים.
- משתמש: סינון עומס השאילתות לפי חשבון משתמש ספציפי.
- כתובת הלקוח: סינון עומס השאילתות מכתובת IP ספציפית.
- טווח תאריכים: מסנן את עומס השאילתות לפי טווחי תאריכים, כמו שעה, 6 שעות, יום, 7 ימים, 30 ימים או טווח בהתאמה אישית.
- סוגי אירועי המתנה: סינון עומס השאילתות לפי סוגי אירועי המתנה של CPU ונעילה.
- שאילתות, סוגי אירועי המתנה, מסדי נתונים, משתמשים, תגים וכתובות לקוח: מיון לפי המאפיינים המובילים שתורמים הכי הרבה לעומס על מסד הנתונים בתרשים. סינון העומס על מסד הנתונים
Cloud SQL מהדורת Enterprise
- מסד נתונים: סינון עומס השאילתות במסד נתונים ספציפי או בכל מסדי הנתונים.
- משתמש: סינון עומס השאילתות לפי חשבון משתמש ספציפי.
- כתובת הלקוח: סינון עומס השאילתות מכתובת IP ספציפית.
- טווח תאריכים: מסנן את עומס השאילתות לפי טווחי תאריכים, כמו שעה, 6 שעות, יום, 7 ימים, 30 ימים או טווח בהתאמה אישית.
- תרשים עומס במסד הנתונים: מציג את תרשים עומס השאילתות, על סמך נתונים מסוננים.
- CPU capacity, CPU and CPU wait, IO wait, and Lock wait: סינון העומסים לפי האפשרויות שנבחרו. במאמר הצגת העומס על מסד הנתונים של השאילתות המובילות מוסבר על כל אחד מהמסננים האלה.
- Queries ו-Tags: סינון עומס השאילתות לפי שאילתה שנבחרה או לפי תג שאילתת SQL שנבחר. סינון העומס על מסד הנתונים
הצגת העומס על מסד הנתונים של כל השאילתות
עומס השאילתות במסד הנתונים הוא מדד של העבודה (בשניות מעבד) שמבצעות השאילתות שהופעלו במסד הנתונים שנבחר לאורך זמן. כל שאילתה שפועלת משתמשת במשאבי מעבד (CPU), במשאבי קלט/פלט או במשאבי נעילה, או ממתינה להם. עומס השאילתות במסד הנתונים הוא היחס בין משך הזמן שלוקח לכל השאילתות להסתיים בחלון זמן נתון לבין הזמן בפועל.
בלוח הבקרה של תובנות לגבי שאילתות ברמה העליונה מוצג התרשים Database load — all top queries. התפריטים הנפתחים במרכז הבקרה מאפשרים לסנן את התרשים לפי מסד נתונים, משתמש או כתובת לקוח ספציפיים.
מהדורת Cloud SQL Enterprise Plus
Cloud SQL מהדורת Enterprise
הקווים הצבעוניים בתרשים מציגים את עומס השאילתות, בחלוקה לקטגוריות:
- קיבולת המעבד (CPU): מספר המעבדים שזמינים במכונה.
- CPU and CPU Wait: היחס בין הזמן שנדרש לשאילתות במצב פעיל לבין הזמן שחלף. המתנות ל-I/O ולנעילה לא חוסמות שאילתות שנמצאות במצב פעיל. המשמעות של המדד הזה היא שהשאילתה משתמשת במעבד (CPU) או ממתינה למתזמן של Linux כדי לתזמן את תהליך השרת שמריץ את השאילתה בזמן שתהליכים אחרים משתמשים במעבד (CPU).
- המתנה לקלט/פלט: היחס בין הזמן שנדרש לשאילתות שממתינות לקלט/פלט לבין זמן השעון. ההמתנה לקלט/פלט כוללת המתנה לקריאת קלט/פלט והמתנה לכתיבת קלט/פלט. אם אתם רוצים פירוט של המידע על ההמתנות לקלט/פלט, תוכלו לראות אותו ב-Cloud Monitoring. למידע נוסף, קראו את המאמר מדדים של Cloud SQL.
- המתנה לנעילה: היחס בין הזמן שנדרש לשאילתות שממתינות לנעילות לבין הזמן בפועל. הוא כולל את Lock Waits, LwLock Waits ו-Buffer pin Lock waits. כדי לראות פירוט של המידע על המתנות לנעילה, צריך להשתמש ב-Cloud Monitoring. למידע נוסף, קראו את המאמר מדדים של Cloud SQL.
הקווים הצבעוניים בתרשים מציגים את העומס בכל מסד נתונים לפי זמן הביצוע. כדי לענות על השאלות הבאות, אפשר לעיין בתרשים ולהשתמש באפשרויות הסינון:
- האם עומס השאילתות גבוה? האם יש עלייה חדה בגרף או שהוא עולה לאורך זמן? אם לא רואים עומס גבוה, הבעיה היא לא בשאילתה.
- כמה זמן העומס גבוה? האם הוא גבוה רק עכשיו או שהוא גבוה כבר הרבה זמן? משתמשים בבורר הטווח כדי לבחור תקופות זמן שונות ולבדוק כמה זמן הבעיה נמשכת. מגדילים את התצוגה כדי לראות חלון זמן שבו נצפו עליות חדות בעומס השאילתות. מקטינים את התצוגה כדי לראות עד שבוע אחד בציר הזמן.
- מה גורם לעומס הגבוה? אתם יכולים לבחור אפשרויות לבדיקת קיבולת המעבד, המעבד וההמתנה למעבד, ההמתנה לנעילה או ההמתנה לקלט/פלט. התרשים של כל אחת מהאפשרויות האלה מוצג בצבע שונה, כדי שתוכלו לזהות את האפשרות עם העומס הגבוה ביותר. הקו הכחול הכהה בתרשים מציג את קיבולת המעבד המקסימלית של המערכת. כך אפשר להשוות בין עומס השאילתות לבין הקיבולת המקסימלית של המעבד (CPU) במערכת. ההשוואה הזו עוזרת לכם לקבוע אם למכונה חסרים משאבי מעבד.
- באיזה מסד נתונים יש עומס? בתפריט הנפתח Databases, בוחרים מסדי נתונים שונים כדי למצוא את מסדי הנתונים עם העומסים הגבוהים ביותר.
- האם משתמשים או כתובות IP ספציפיים גורמים לעומסים גבוהים יותר? בוחרים משתמשים וכתובות אחרים מהתפריטים הנפתחים כדי לזהות את אלה שגורמים לעומסים גבוהים יותר.
סינון העומס על מסד הנתונים
אפשר לסנן את העומס על מסד הנתונים לפי שאילתות או תגים. אם אתם משתמשים בתובנות לגבי שאילתות ב-Cloud SQL Enterprise Plus, אתם יכולים להתאים אישית את תרשים העומס על מסד הנתונים כדי לפרט את הנתונים שמוצגים לפי כל אחד מהמאפיינים הבאים:כל השאילתות
סוגי אירועי המתנה
מסדי נתונים
משתמשים
תגים
כתובות של לקוחות
כדי להתאים אישית את תרשים עומס מסד הנתונים, בוחרים מאפיין מהתפריט הנפתח Database Load by execution time.
הצגת הגורמים העיקריים לעומס על מסד הנתונים
כדי לראות את הגורמים העיקריים לעומס על מסד הנתונים, אפשר להשתמש בטבלה Top dimensions by database load. בטבלה Top dimensions by database load מוצגים הגורמים העיקריים לעומס על מסד הנתונים, בהתאם לתקופה ולמאפיין שבחרתם בתפריט הנפתח של התרשים Database Load by execution time. אתם יכולים לשנות את התקופה או המאפיין כדי לראות את הגורמים התורמים המובילים למאפיין או לתקופה אחרים.
בטבלה Top dimensions by data load, אפשר לבחור את הכרטיסיות הבאות.
| Tab | תיאור |
|---|---|
| שאילתות | בטבלה מוצגות השאילתות המנורמלות המובילות לפי זמן הביצוע הכולל.
לכל שאילתה, הנתונים שמוצגים בעמודות מפורטים באופן הבא:
|
| סוגי אירועי המתנה | בטבלה מוצגת רשימה של סוגי אירועי ההמתנה המובילים שהתרחשו בתקופה שנבחרה. הטבלה הזו זמינה רק לתובנות לגבי שאילתות ב-Cloud SQL Enterprise Plus.
|
| מסדי נתונים | בטבלה מוצגת רשימת מסדי הנתונים המובילים שתרמו לעומס בתקופה שנבחרה בכל השאילתות שבוצעו.
|
| משתמשים | בטבלה מוצגת רשימת המשתמשים המובילים בתקופה שנבחרה בכל השאילתות שבוצעו.
|
| תגים | סינון לפי תגי שאילתות |
| כתובות של לקוחות | בטבלה מוצגת רשימת המשתמשים המובילים בתקופה שנבחרה בכל השאילתות שבוצעו.
|
סינון לפי שאילתות
בטבלה Top dimensions by database load מוצגת סקירה כללית של השאילתות שגורמות לעומס השאילתות הגבוה ביותר. בטבלה מוצגות כל השאילתות שעברו נרמול בטווח התאריכים ובאפשרויות שנבחרו בלוח הבקרה של 'תובנות לגבי שאילתות'. השאילתות ממוינות לפי זמן הביצוע הכולל בטווח התאריכים שנבחר.
מהדורת Cloud SQL Enterprise Plus
כדי למיין את הטבלה, לוחצים על כותרת של עמודה.
Cloud SQL מהדורת Enterprise
כדי למיין את הטבלה, בוחרים כותרת עמודה או מאפיין מתוך סינון שאילתות.
בטבלה מוצגים המאפיינים הבאים:
- שאילתה: מחרוזת השאילתה המנורמלת. כברירת מחדל, בתובנות לגבי שאילתות מוצגים רק 1,024 תווים במחרוזת השאילתה.
שאילתות עם התווית
UTILITY COMMANDבדרך כלל כוללות פקודותBEGIN,COMMITו-EXPLAINאו פקודות wrapper. - Database: מסד הנתונים שבו הופעלה השאילתה.
- Recommendations: ההמלצות המוצעות, כמו Create indexes, לשיפור ביצועי השאילתות.
- Load by total time/Load by CPU/Load by IO wait/Load by lock wait: האפשרויות שבעזרתן אפשר לסנן שאילתות ספציפיות כדי למצוא את העומס הגדול ביותר.
- % load by Queries: אחוז העומס לפי שאילתה ספציפית.
- Analyze latency: אם הפעלתם את AI-assisted troubleshooting (גרסת טרום-השקה (Preview)) במכונה הזו, אתם יכולים ללחוץ על הקישור הזה כדי לפתור בעיות של שאילתות איטיות.
- זמן ביצוע ממוצע (באלפיות השנייה): הזמן הממוצע לביצוע השאילתה.
- מספר הקריאות: מספר הפעמים שהאפליקציה קראה לשאילתה.
- Avg rows returned: מספר השורות הממוצע שהוחזרו בשאילתה.
- מספר ממוצע של שורות שנסרקו: מספר השורות הממוצע שנסרקו בשאילתה.
הכלי "תובנות לגבי שאילתות" שומר ומציג רק שאילתות מנורמלות.
כברירת מחדל, תובנות לגבי שאילתות לא אוספות כתובות IP או מידע על תגים. אתם יכולים להפעיל את תובנות לגבי שאילתות כדי לאסוף את המידע הזה, ובמקרה הצורך להשבית את האיסוף.
מעקבי תוכניות לביצוע שאילתות לא אוספים או מאחסנים ערכים קבועים, ומסירים כל פרטים אישיים מזהים (PII) שהקבוע עשוי להציג.
ב-Query Insights מוצגות שאילתות מנורמלות, כלומר ? מחליף את הערך הקבוע המילולי. בדוגמה הבאה, הקבוע name הוסר והוחלף ב-?.
UPDATE "demo_customer" SET "customer_id" = ?::uuid, "name" = ?, "address" = ?, "rating" = ?, "balance" = ?, "current_city" = ?, "current_location" = ? WHERE "demo_customer"."id" = ?
סינון לפי תגי שאילתות
כדי לפתור בעיות באפליקציה, קודם צריך להוסיף תגים לשאילתות ה-SQL. תגי עומס השאילתות מספקים פירוט של עומס השאילתות של התג שנבחר לאורך זמן.
התכונה "תובנות לגבי שאילתות" מספקת מעקב שמתמקד באפליקציות, כדי לאבחן בעיות בביצועים של אפליקציות שנוצרו באמצעות ORM. אם אתם אחראים על כל מחסנית האפליקציה, תובנות לגבי שאילתות מספקות מעקב אחרי שאילתות מתצוגת האפליקציה. תיוג שאילתות עוזר לכם למצוא בעיות במבנים ברמה גבוהה יותר, כמו בלוגיקה העסקית או במיקרו-שירות.
אפשר לתייג שאילתות לפי הלוגיקה העסקית, למשל תשלום, מלאי, ניתוח עסקי או משלוח. לאחר מכן תוכלו למצוא את עומס השאילתות שנוצר על ידי הלוגיקה העסקית השונה. לדוגמה, יכול להיות שתבחינו באירועים לא צפויים, כמו עלייה חדה בתג של ניתוח עסקי בשעה 13:00 או עלייה לא צפויה בשירות תשלומים במגמת עלייה בשבוע הקודם.
כדי לחשב את עומס מסד הנתונים לתג, התובנות לגבי שאילתות משתמשות במשך הזמן של כל שאילתה שמשתמשת בתג שבחרתם. הכלי מחשב את זמן הסיום בגבולות הדקה באמצעות השעה המקומית.
כדי להציג את טבלת התגים, לוחצים על Tags בלוח הבקרה של תובנות לגבי שאילתות. הטבלה ממיינת את התגים לפי זמן הטעינה הכולל שלהם.
כדי למיין את הטבלה, בוחרים מאפיין מתוך Filter tags או לוחצים על כותרת של עמודה. בטבלה מוצגים המאפיינים הבאים:
- Action, Controller, Framework, Route, Application, DB driver: כל מאפיין שהוספתם לשאילתות מופיע כעמודה. כדי לסנן לפי תגים, צריך להוסיף לפחות אחד מהמאפיינים האלה.
- Load by total time/Load by CPU/Load by IO wait/Load by lock wait: אפשרויות לסינון שאילתות ספציפיות כדי למצוא את העומס הגדול ביותר לכל אפשרות.
- Avg execution time (ms): משך הזמן הממוצע להרצת השאילתה.
- מספר ממוצע של שורות שהוחזרו: מספר השורות הממוצע שהוחזר לשאילתה.
- מספר ממוצע של שורות שנסרקו: מספר השורות הממוצע שנסרקו בשאילתה.
- מספר הקריאות: מספר הפעמים שהאפליקציה קראה לשאילתה.
- מסד נתונים: מסד הנתונים שבו הופעלה השאילתה.
הצגת פרטי שאילתה של שאילתה או תג ספציפיים
כדי לבדוק אם שאילתה או תג ספציפיים הם שורש הבעיה, מבצעים את הפעולות הבאות בכרטיסייה Queries או בכרטיסייה Tags, בהתאמה:
- כדי למיין את הרשימה בסדר יורד, לוחצים על הכותרת Load by total time.
- לוחצים על השאילתה או התג בחלק העליון של הרשימה. העומס עליו הוא הגבוה ביותר, והוא לוקח יותר זמן מהאחרים.
הדף Query details נפתח ומוצגים בו הפרטים של השאילתה או התג שנבחרו.
בדיקת עומס של שאילתה ספציפית
הדף Query details של שאילתה שנבחרה נראה כך:
בתרשים Database load — specific query מוצג מדד של העבודה (בשניות מעבד) שהשאילתה המנורמלת ביצעה בשאילתה שנבחרה לאורך זמן. כדי לחשב את העומס, המערכת משתמשת במשך הזמן שלוקח לשאילתות המנורמלות להסתיים בגבולות הדקה, בהשוואה לזמן בפועל. בחלק העליון של הטבלה מוצגים 1, 024 התווים הראשונים של השאילתה המנורמלת, בלי ליטרלים, מסיבות של צבירה ופרטים אישיים מזהים.
כמו בתרשים של סך כל השאילתות, אפשר לסנן את העומס של שאילתה ספציפית לפי מסד נתונים, משתמש וכתובת לקוח. עומס השאילתות מחולק ל-CPU capacity, CPU and CPU wait, IO wait ו-Lock wait.
בדיקת עומס של שאילתות מתויגות ספציפיות
כך נראה מרכז הבקרה של תג שנבחר. לדוגמה, אם כל השאילתות מתשלום של מיקרו-שירותים מתויגות בתור payment, תוכלו לראות את כמות עומס השאילתות במגמה על ידי הצגת התג payment.
בתרשים Database load — specific tags מוצגת מידת העבודה (בשניות מעבד) שבוצעה לאורך זמן במסד הנתונים שנבחר, על ידי שאילתות שתואמות לתגים שנבחרו. כמו בתרשים של סך כל השאילתות, אפשר לסנן את העומס של תג ספציפי לפי Database, User ו-Client address.
בדיקת הפעולות בתוכנית לביצוע שאילתה שנדגמה
תוכנית לביצוע שאילתה לוקחת דגימה מהשאילתה ומפרקת אותה לפעולות נפרדות. הוא מסביר ומנתח כל פעולה בשאילתה.
ב-MySQL 5.7, התצוגה EXPLAIN מספקת תוכנית משוערת לביצוע שאילתה, וב-MySQL 8.0 ובגרסאות מתקדמות יותר, התצוגה EXPLAIN ANALYZE מספקת תוכנית לביצוע שאילתה. תוכנית משוערת לביצוע שאילתה מספקת את זמן הביצוע המשוער של שאילתה, ואילו תוכנית לביצוע שאילתה מספקת מידע בזמן אמת על כל שלב בביצוע של שאילתה נתונה.
ב-MySQL 5.7, אפשר להשתמש בתוכניות לביצוע שאילתות בשאילתות הבאות, שנתמכות בהצהרה EXPLAIN:
- לטבלאות בודדות: INSERT, SELECT, UPDATE ו-DELETE.
- בכמה טבלאות: SELECT, UPDATE ו-DELETE.
אפשר ליצור תוכניות לביצוע שאילתות ב-MySQL מגרסה 8.0 ואילך לכל השאילתות שנתמכות על ידי EXPLAIN ANALYZE. הכלי הזה מראה איפה MySQL משקיע זמן בשאילתות SELECT בטבלאות בודדות ובטבלאות מרובות. ב-Cloud SQL אי אפשר ליצור תוכניות לביצוע שאילתות של שפת טיפול בנתונים (DML) עם כמה טבלאות, כי השאילתות האלה לא נתמכות ב-EXPLAIN ANALYZE.
ב-Sample Query Plan מוצגת תצוגת EXPLAIN ANALYZE של דוגמאות לתוכניות לביצוע שאילתות שקשורות לשאילתה המנורמלת. אלה תוכניות לביצוע שאילתות שבוצעו, שמספקות פירוט של הזמן הפעיל שנדרש לכל פעולה בתוכנית לביצוע השאילתה.
בתרשים Query plan samples מוצגות כל התוכניות לביצוע שאילתות שפועלות בזמנים מסוימים, ומשך הזמן שלקח לכל תוכנית לפעול. אתם יכולים לשנות את קצב הדגימה של תוכניות לביצוע שאילתות לדקה. הפעלת Query Insights
כברירת מחדל, בחלונית שמשמאל מוצגים הפרטים של תוכנית לביצוע שאילתה לדוגמה שנמשכת הכי הרבה זמן, כפי שמופיע בתרשים Query plan samples. כדי לראות את הפרטים של תוכנית אחרת לדוגמה לביצוע שאילתה, לוחצים על העיגול הרלוונטי בתרשים. בפרטים המורחבים מוצג מודל של כל הפעולות בתוכנית לביצוע השאילתה.
בכל פעולה מוצגים זמן האחזור, השורות שהוחזרו ועלות הפעולה. כשבוחרים פעולה, אפשר לראות פרטים נוספים, כמו בלוקים משותפים של היטים, סוג הסכימה, לולאות ושורות של תוכניות.
כדי לצמצם את הבעיה, נסו לענות על השאלות הבאות:
- מהי צריכת המשאבים?
- איך היא קשורה לשאילתות אחרות?
- האם הצריכה משתנה לאורך זמן?
בדיקת מעקב שנוצר על ידי שאילתה לדוגמה
בנוסף לצפייה בתוכנית לדוגמה לביצוע שאילתה, אתם יכולים להשתמש בתובנות לגבי שאילתות כדי להציג מעקב מקצה לקצה אחרי אפליקציה בהקשר של שאילתה לדוגמה. המעקב הזה יכול לעזור לכם לזהות את המקור של שאילתה בעייתית, על ידי הצגת הפעילות במסד הנתונים לבקשה ספציפית. בנוסף, רשומות ביומן שהאפליקציה שולחת ל-Cloud Logging במהלך הבקשה מקושרות למעקב, מה שעוזר לכם בחקירה.
כדי להציג את המעקב בהקשר:
- במסך Sample Query, לוחצים על הכרטיסייה End-to-end Trace. בכרטיסייה הזו מוצג תרשים גאנט שמפרט את הטווחים, שהם רשומות של פעולות ספציפיות, של המעקב שנוצר על ידי השאילתה.
- כדי לראות פרטים נוספים על כל span, כמו מאפיינים ומטא-נתונים, בוחרים את ה-span.
אפשר גם לראות את המעקב בדף Trace Explorer. כדי לעשות זאת, לוחצים על View in Cloud Trace. במאמר חיפוש וחקירה של נתוני מעקב מוסבר איך משתמשים בדף Trace Explorer כדי לחקור את נתוני המעקב.
בדיקת זמן האחזור
זמן אחזור הוא משך הזמן שלוקח לשאילתה המנורמלת להסתיים, בזמן אמת. בתרשים Latency אפשר לבדוק את זמן האחזור של השאילתה או התג. בלוח הבקרה של זמן האחזור מוצגים זמני האחזור באחוזונים ה-50, ה-95 וה-99, כדי לזהות התנהגויות חריגות.
בתמונה הבאה מוצג תרשים עומס מסד הנתונים באחוזון ה-50 של שאילתה ספציפית, עם מסננים שנבחרו לקיבולת המעבד, למעבד ולהמתנה למעבד, להמתנה ל-IO ולהמתנה לנעילה.
זמן האחזור של שאילתות מקבילות נמדד בזמן אמת, למרות שעומס השאילתות יכול להיות גבוה יותר בגלל שימוש במספר ליבות להרצת חלק מהשאילתה.
כדי לצמצם את הבעיה, נסו לענות על השאלות הבאות:
- מה גורם לעומס הגבוה? בוחרים אפשרויות כדי לבדוק את קיבולת המעבד, המעבד וההמתנה למעבד, ההמתנה לקלט/פלט או ההמתנה לנעילה.
- כמה זמן העומס גבוה? האם הוא גבוה רק עכשיו? או שהוא גבוה כבר הרבה זמן? משנים את טווח התאריכים כדי למצוא את התאריך והשעה שבהם הביצועים של העומס התחילו לרדת.
- האם היו עליות חדות בזמן האחזור? משנים את חלון הזמן כדי לבחון את זמן האחזור ההיסטורי של השאילתה המנורמלת.
הוספת תגים לשאילתות SQL
תיוג שאילתות SQL מפשט את פתרון הבעיות באפליקציה. אתם יכולים להשתמש ב-sqlcommenter כדי להוסיף תגים לשאילתות SQL באופן אוטומטי או ידני.
שימוש ב-sqlcommenter עם ORM
כשמשתמשים ב-ORM במקום לכתוב שאילתות SQL ישירות, יכול להיות שלא תמצאו את קוד האפליקציה שגורם לבעיות בביצועים. יכול להיות שגם תתקשו לנתח איך קוד האפליקציה משפיע על ביצועי השאילתות. כדי לפתור את הבעיה הזו, Query Insights מספק ספריית קוד פתוח שנקראת sqlcommenter. הספרייה הזו שימושית למפתחים ולאדמינים שמשתמשים בכלי ORM כדי לזהות איזה קוד אפליקציה גורם לבעיות בביצועים.
אם אתם משתמשים ב-ORM וב-sqlcommenter ביחד, התגים נוצרים באופן אוטומטי. אתם לא צריכים להוסיף או לשנות קוד באפליקציה.
אפשר להתקין את sqlcommenter בשרת האפליקציה. ספריית הכלים מאפשרת להפיץ למסד הנתונים מידע על האפליקציה שקשור למסגרת ה-MVC, יחד עם השאילתות, בתור הערת SQL. מסד הנתונים אוסף את התגים האלה ומתחיל לתעד ולצבור נתונים סטטיסטיים לפי תגים, שהם אורתוגונליים לנתונים סטטיסטיים שנצברו לפי שאילתות מנורמלות. התגים מוצגים בתובנות לגבי שאילתות, כדי שתוכלו לדעת איזו אפליקציה גורמת לעומס השאילתות ולמצוא את קוד האפליקציה שגורם לבעיות בביצועים.
כשבודקים את התוצאות ביומנים של מסד נתוני SQL, הן מופיעות כך:
SELECT * from USERS /action='run+this', controller='foo%3', traceparent='00-01', tracestate='rojo%2'/
התגים הנתמכים כוללים את שם הבקר, המסלול, המסגרת והפעולה.
אפשר להשתמש בכלים של ORM ב-sqlcommenter בשפות התכנות הבאות:
| Python |
|
| Java |
|
| Ruby |
|
| Node.js |
|
| PHP |
|
| המשך |
|
למידע נוסף על sqlcommenter ואיך להשתמש בו במסגרת ה-ORM, קראו את המסמכים של sqlcommenter.
שימוש ב-sqlcommenter להוספת תגים
אם אתם לא משתמשים ב-ORM, אתם צריכים להוסיף באופן ידני תגים או הערות של sqlcommenter בפורמט הנכון של הערות SQL לשאילתת ה-SQL. בנוסף, צריך להוסיף לכל הצהרת SQL הערה שמכילה צמד מפתח/ערך שעבר סריאליזציה. צריך להשתמש לפחות באחד מהמקשים הבאים:
action=''controller=''framework=''route=''application=''db driver=''
התכונה "תובנות לגבי שאילתות" מתעלמת מכל המפתחות האחרים.
השבתת תובנות לגבי שאילתות
המסוף
כדי להשבית את Query Insights במכונה של Cloud SQL באמצעות מסוף Cloud de Confiance , מבצעים את השלבים הבאים:
-
נכנסים לדף Cloud SQL Instances במסוף Cloud de Confiance .
- כדי לפתוח את הדף Overview של מכונה, לוחצים על שם המכונה.
- במשבצת הגדרה, לוחצים על עריכת ההגדרה.
- בקטע Configuration options, מרחיבים את Query insights.
- מבטלים את הסימון של התיבה Enable Query insights.
- לוחצים על Save.
gcloud
כדי להשבית את Query Insights במכונה של Cloud SQL באמצעות gcloud, מריצים את הפקודה gcloud sql instances patch עם הדגל --no-insights-config-query-insights-enabled, אחרי שמחליפים את INSTANCE_ID במזהה של המכונה.
gcloud sql instances patch INSTANCE_ID \ --no-insights-config-query-insights-enabled
REST
כדי להשבית את Query Insights במכונה של Cloud SQL באמצעות ה-API בארכיטקטורת REST, מפעילים את ה-method instances.patch עם queryInsightsEnabled שמוגדר כ-false, באופן הבא.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- project-id: מזהה הפרויקט.
- instance-id: מזהה המכונה.
ה-method של ה-HTTP וכתובת ה-URL:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id
תוכן בקשת JSON:
{
"settings" : { "insightsConfig" : { "queryInsightsEnabled" : false } }
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2021-01-28T22:43:40.009Z",
"operationType": "UPDATE",
"name": "operation-id",
"targetId": "instance-id",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id",
"targetProject": "project-id"
}
Terraform
כדי להשבית את Query Insights במכונה של Cloud SQL באמצעות Terraform, מגדירים את הדגל query_insights_enabled לערך false.
הנה דוגמה:
resource "google_sql_database_instance" "INSTANCE_NAME" { name = "INSTANCE_NAME" database_version = "MYSQL_VERSION" region = "REGION" root_password = "PASSWORD" deletion_protection = false # set to true to prevent destruction of the resource settings { tier = "DB_TIER" insights_config { query_insights_enabled = false } } }
כך מחילים את ההגדרות של Terraform בפרויקט ב- Cloud de Confiance :
הכנת Cloud Shell
- מפעילים את Cloud Shell.
-
מגדירים את פרויקט ברירת המחדל ב- Cloud de Confiance שבו רוצים להחיל את ההגדרות של Terraform.
תצטרכו להריץ את הפקודה הזו רק פעם אחת לכל פרויקט, ותוכלו לעשות זאת בכל ספרייה.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
אם תגדירו ערכים ספציפיים בקובץ התצורה של Terraform, הם יבטלו את ערכי ברירת המחדל של משתני הסביבה.
הכנת הספרייה
לכל קובץ תצורה של Terraform צריכה להיות ספרייה משלו (שנקראת גם מודול ברמה הבסיסית).
-
יוצרים ספרייה חדשה ב-Cloud Shell ובה יוצרים קובץ חדש. שם הקובץ חייב לכלול את הסיומת
.tf, למשלmain.tf. במדריך הזה, הקובץ נקראmain.tf.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
אם אתם עוקבים אחרי המדריך, תוכלו להעתיק את הקוד לדוגמה בכל קטע או שלב.
מעתיקים את הקוד לדוגמה בקובץ
main.tfהחדש שיצרתם.לחלופין, אפשר גם להעתיק את הקוד מ-GitHub. כדאי לעשות את זה כשקטע הקוד של Terraform הוא חלק מפתרון מקצה לקצה.
- בודקים את הפרמטרים לדוגמה ומשנים אותם בהתאם לסביבה שלכם.
- שומרים את השינויים.
-
מפעילים את Terraform. צריך לעשות זאת רק פעם אחת לכל ספרייה.
terraform init
אופציונלי: תוכלו לכלול את האפשרות
-upgrade, כדי להשתמש בגרסה העדכנית ביותר של הספק של Google:terraform init -upgrade
החלה של השינויים
-
בודקים את ההגדרות ומוודאים שהמשאבים שמערכת Terraform תיצור או תעדכן תואמים לציפיות שלכם:
terraform plan
מתקנים את ההגדרות לפי הצורך.
-
מריצים את הפקודה הבאה ומזינים
yesבהודעה שמופיעה, כדי להחיל את הגדרות Terraform:terraform apply
ממתינים עד שב-Terraform תוצג ההודעה "Apply complete!".
- פותחים את הפרויקט ב- Cloud de Confiance כדי להציג את התוצאות. במסוף Cloud de Confiance , נכנסים למשאבים בממשק המשתמש כדי לוודא שהם נוצרו או עודכנו ב-Terraform.
השבתת Query Insights במהדורת Cloud SQL Enterprise Plus
כדי להשבית את Query Insights במהדורת Cloud SQL Enterprise Plus:
-
נכנסים לדף Cloud SQL Instances במסוף Cloud de Confiance .
- כדי לפתוח את הדף Overview של מכונה, לוחצים על שם המכונה.
- לוחצים על Edit.
- בקטע Customize your instance, מרחיבים את Query insights.
- מבטלים את הסימון של התיבה הפעלת התכונות של Enterprise Plus.
- לוחצים על Save.
המאמרים הבאים
- פוסט בבלוג: פתרון מהיר יותר של צווארי בקבוק במסדי נתונים באמצעות התובנות החדשות לגבי שאילתות ב-Cloud SQL Enterprise Plus
- Cloud de Confiance מדדים
- בלוג: שיפור המיומנויות של פתרון בעיות בביצועי שאילתות באמצעות Cloud SQL Insights
- סרטון: היכרות עם Cloud SQL Insights
- פודקאסט: Cloud SQL Insights
- Codelab בנושא תובנות
- אופטימיזציה של שימוש גבוה במעבד (CPU)
- אופטימיזציה של שימוש בזיכרון רב
- בלוג: היכרות עם Sqlcommenter: ספריית ORM בקוד פתוח להוספה אוטומטית של כלי מדידה
- בלוג: הפעלת תיוג שאילתות באמצעות Sqlcommenter