בדף הזה מוסבר איך משתמשים בלוח הבקרה 'תובנות לגבי שאילתות' כדי לזהות ולנתח בעיות בביצועים של השאילתות.
מבוא
התכונה 'תובנות לגבי שאילתות' עוזרת לכם לזהות, לאבחן ולמנוע בעיות בביצועים של שאילתות במסדי נתונים של Cloud SQL. הוא תומך בניטור אינטואיטיבי ומספק מידע אבחוני שעוזר לכם לזהות את שורש הבעיה של בעיות בביצועים, ולא רק לזהות את הבעיות עצמן.
בעזרת תובנות לגבי שאילתות, אפשר לעקוב אחרי הביצועים ברמת האפליקציה ולעקוב אחרי המקור של שאילתה בעייתית במערך האפליקציות לפי מודל, תצוגה, בקר, נתיב, משתמש ומארח. אפשר לשלב את הכלי 'תובנות לגבי שאילתות' עם כלים ושירותים קיימים לניטור אפליקציות (APM) באמצעות תקנים פתוחים וממשקי API. Google Cloudכך תוכלו לעקוב אחרי בעיות בשאילתות ולפתור אותן באמצעות הכלי המועדף עליכם.
התובנות לגבי שאילתות עוזרות לכם לשפר את הביצועים של שאילתות Cloud SQL באמצעות השלבים הבאים:
- צפייה בעומס על מסד הנתונים בשאילתות מובילות
- זיהוי שאילתה או תג שעלולים לגרום לבעיות
- בדיקת השאילתה או התג כדי לזהות בעיות
- בדיקת מעקב שנוצר על ידי שאילתה לדוגמה
תובנות לגבי שאילתות במהדורת Cloud SQL Enterprise Plus
אם אתם משתמשים במהדורת Cloud SQL Enterprise Plus, תוכלו לגשת ליכולות נוספות ב'תובנות לגבי שאילתות' כדי לבצע אבחון מתקדם של ביצועי שאילתות. בנוסף ליכולות הרגילות של לוח הבקרה Query insights, מהדורת Cloud SQL Enterprise Plus מאפשרת לכם:
- תיעוד וניתוח של אירועי המתנה לכל השאילתות שהופעלו.
- סינון של עומס מסד הנתונים המצטבר לפי מאפיינים נוספים כמו שאילתות, תגים, סוגי אירועי המתנה ועוד.
- תיעוד של תוכניות שאילתה לכל השאילתות שהופעלו.
- דגימה של עד 200 תוכניות שאילתה בדקה.
- אפשר לצלם טקסט שאילתה ארוך יותר, עד 1 MB.
- קבלת עדכונים כמעט בזמן אמת לגבי מדדים (בסדר גודל של שניות).
- שמירה של מדדים למשך 30 יום.
- קבלת המלצות לאינדקס מיועץ האינדקסים.
- סיום של סשן או של טרנזקציה שפועלת במשך זמן רב בשאילתות פעילות.
- גישה לפתרון בעיות בעזרת AI (גרסת Preview).
בטבלה הבאה מוצגת השוואה בין הדרישות הפונקציונליות והיכולות של התובנות לגבי שאילתות במהדורת Cloud SQL Enterprise לבין התובנות לגבי שאילתות במהדורת Cloud SQL Enterprise Plus.
| אזור ההשוואה | תובנות לגבי שאילתות במהדורת Cloud SQL Enterprise | תובנות לגבי שאילתות במהדורת Cloud SQL Enterprise Plus |
|---|---|---|
| גרסאות נתמכות של מסדי נתונים | MySQL 5.7 ואילך | MySQL 8.0 ואילך |
| סוגי מכונות נתמכים | נתמך בכל סוגי המכונות | לא נתמך במופעים שמשתמשים בסוג מכונה עם ליבה משותפת |
| אזורים נתמכים | מיקומים אזוריים של Cloud SQL | מיקומים אזוריים של מהדורת Cloud SQL Enterprise Plus |
| תקופת השמירה של מדדים | 7 ימים | 30 ימים |
| מגבלת האורך המקסימלית של שאילתה | 4,500 בייטים | 1 MB |
| מקסימום דגימה של תוכנית שאילתה | 20 | 200 |
| ניתוח אירועי המתנה | לא זמין | זמין |
| המלצות של Index advisor | לא זמין | זמין |
| הפסקת סשנים או עסקאות שפועלות במשך זמן רב בשאילתות פעילות | לא זמין | זמין |
| פתרון בעיות בעזרת AI (תצוגה מקדימה) | לא זמין | זמין |
| מגבלות על מספר הערכים הייחודיים בשאילתות | הדוח מציג את הנתונים הסטטיסטיים המצטברים של עד 100 השאילתות המובילות עם שילוב של כתובות IP של לקוחות, מסדי נתונים, תג אפליקציה, שמות משתמשים וטקסט של שאילתות ביום. | הדוח מציג את הנתונים הסטטיסטיים המצטברים של עד 4,000 השאילתות המובילות בשילוב של כתובות IP של לקוחות, מסדי נתונים, שמות משתמשים ומזהי שאילתות לדקה. |
הפעלת תובנות לגבי שאילתות במהדורת Cloud SQL Enterprise Plus
כדי להפעיל את התכונה 'תובנות לגבי שאילתות' במהדורת Cloud SQL Enterprise Plus, בוחרים באפשרות Enable Enterprise Plus features כשמפעילים את התכונה 'תובנות לגבי שאילתות' במופע של Cloud SQL Enterprise Plus.
תמחור
אין עלות נוספת לשימוש בתובנות לגבי שאילתות במופעים של מהדורת Cloud SQL Enterprise או מהדורת Cloud SQL Enterprise Plus.
דרישות אחסון
התכונה 'תובנות לגבי שאילתות' במהדורת Cloud SQL Enterprise לא תופסת נפח אחסון במכונה של Cloud SQL. המדדים מאוחסנים ב-Cloud Monitoring. לגבי בקשות API, ראו תמחור של Cloud Monitoring. יש רמה ב-Cloud Monitoring שאפשר להשתמש בה ללא עלות נוספת.
תובנות לגבי שאילתות במהדורת Cloud SQL Enterprise Plus מאחסנות נתוני מדדים באותו דיסק שמצורף למכונת Cloud SQL, ולכן צריך להשאיר את ההגדרה של הגדלת נפח האחסון באופן אוטומטי מופעלת.
דרישת האחסון לנתונים של שבעה ימים היא בערך 45 GB. למשך 30 ימים, תצטרכו נפח אחסון של כ-180 GB. התובנות לגבי שאילתות במהדורת Cloud SQL Enterprise Plus צורכות עד 130 MB של RAM. המדדים צפויים להיות זמינים בתובנות לגבי שאילתות תוך דקה מסיום השאילתה. חלות עמלות אחסון.מגבלות
המגבלות הבאות חלות על תובנות לגבי שאילתות במופעים של Cloud SQL Enterprise Plus:
- אם יש עומס רב על המערכת של המופע, יכול להיות שהשאילתות שלכם ייטענו לאט או יפסיקו לפעול כשאתם מריצים שאילתות על נתוני מדדים בלוח הבקרה תובנות לגבי שאילתות.
- אם יוצרים מחדש עותק לקריאה, העותק החדש לא כולל את היסטוריית המדדים הקודמת שלו.
- כשמשחזרים תובנות לגבי שאילתות במכונה במהדורת Cloud SQL Enterprise Plus מגיבוי ישן יותר, יכול להיות שתאבדו את המדדים שנאספו בין הזמן שבו בוצע הגיבוי לבין הזמן שבו שחזרתם את המכונה. לדוגמה, אם תשחזרו את המופע ב-30 באפריל עם גיבוי שנוצר ב-25 באפריל, יכול להיות שתאבדו את כל המדדים בין 25 באפריל ל-30 באפריל.
לפני שמתחילים
לפני שמשתמשים בתובנות לגבי שאילתות, צריך לבצע את הפעולות הבאות.
- מוסיפים את התפקידים וההרשאות הנדרשים.
- הפעלת Cloud Trace API.
- אם אתם משתמשים ב-Query insights במהדורת Cloud SQL Enterprise Plus, אתם צריכים לוודא שהאפשרות הגדלת נפח האחסון באופן אוטומטי מופעלת עבור המכונה.
תפקידים והרשאות נדרשים
כדי לקבל את ההרשאות שדרושות לגישה לנתוני היסטוריית הביצוע של שאילתות בלוח הבקרה של תובנות לגבי שאילתות, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים בפרויקט שמארח את מופע Cloud SQL:
-
צפייה במעקב של Database Insights (
roles/databaseinsights.monitoringViewer) -
Cloud SQL Viewer (
roles/cloudsql.viewer)
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
הפעלת Cloud Trace API
כדי לראות את תוכניות השאילתות ואת התצוגות מקצה לקצה שלהן, צריך להפעיל את Cloud Trace API ב Google Cloud פרויקט. ההגדרה הזו מאפשרת לכם לקבל נתוני מעקב ממקורות מאומתים בפרויקטGoogle Cloud בלי עלות נוספת. הנתונים האלה יכולים לעזור לכם לזהות ולאבחן בעיות בביצועים במופע שלכם.
כדי לוודא ש-Cloud Trace API מופעל, פועלים לפי השלבים הבאים:
- במסוף Google Cloud , עוברים אל APIs and Services:
- לוחצים על Enable APIs and Services.
- בסרגל החיפוש, מזינים
Cloud Trace API. - אם מוצגת האפשרות API enabled, סימן שה-API הזה מופעל ואין צורך לעשות דבר. אחרת, לוחצים על Enable.
הפעלת הגדלה אוטומטית של נפח האחסון
אם אתם משתמשים בתובנות לגבי שאילתות במהדורת Cloud SQL Enterprise Plus, חשוב לוודא שההגדרה של המכונה enable automatic storage increases (הגדלת נפח האחסון באופן אוטומטי) נשארת מופעלת. כברירת מחדל, האפשרות הזו מופעלת במופעים של Cloud SQL.
אם השבתתם בעבר את ההגדרה הזו של המכונה ואתם רוצים להפעיל את התכונה 'תובנות לגבי שאילתות' במהדורת Cloud SQL Enterprise Plus, תצטרכו להפעיל מחדש את ההגדרה 'הגדלת נפח אחסון אוטומטית'. אי אפשר להשבית את ההגדלה האוטומטית של נפח האחסון ולהפעיל את התכונה 'תובנות לגבי שאילתות' במהדורת Cloud SQL Enterprise Plus.
הפעלת תובנות לגבי שאילתות
לפני שמפעילים את התכונה 'תובנות לגבי שאילתות', חשוב לשים לב לדרישות הבאות לגבי הפעלה מחדש:
אם המכונה שלכם פועלת עם גרסת תחזוקה של MySQL
20251004.01_RC06או גרסה מוקדמת יותר, ואתם מפעילים את התכונה 'תובנות לגבי שאילתות' ב-Cloud SQL Enterprise Plus, המכונה תופעל מחדש. יכול להיות שיחלפו כמה דקות עד שהמופע יהיה זמין שוב. כתוצאה מכך, כל הפעולות האחרות מושעות באופן זמני, כולל הפעולות הבאות:- בדיקות תקינות
- רישום ביומן
- מעקב
- פעולות אחרות שקשורות למופע
אם המכונה שלכם מריצה את גרסת התחזוקה של MySQL
20251004.01_RC07ואילך, ואתם מפעילים את התכונה 'תובנות לגבי שאילתות', לא נדרשת הפעלה מחדש והפעולות במכונה נשארות זמינות.
המסוף
הפעלת תובנות לגבי שאילתות במופע
-
נכנסים לדף Cloud SQL Instances במסוף Google Cloud .
- כדי לפתוח את הדף סקירה כללית של מכונה, לוחצים על שם המכונה.
- בכרטיס Configuration (הגדרות), לוחצים על Edit configuration (עריכת ההגדרות).
- בקטע Customize your instance (התאמה אישית של המופע), מרחיבים את Query insights (תובנות לגבי שאילתות).
- מסמנים את התיבה הפעלת תובנות לגבי שאילתות.
- אופציונלי: בוחרים תכונות נוספות למופע. חלק מהתכונות זמינות רק במהדורת Cloud SQL Enterprise Plus.
- לוחצים על Save.
| תכונה | תיאור | מהדורת Cloud SQL Enterprise | מהדורת Cloud SQL Enterprise Plus |
|---|---|---|---|
| הפעלת תכונות של Enterprise Plus | מסמנים את תיבת הסימון הזו כדי להפעיל את התכונה 'תובנות לגבי שאילתות' במהדורת Cloud SQL Enterprise Plus. תובנות לגבי שאילתות במהדורת Cloud SQL Enterprise Plus מאפשרות לכם להפסיק סשנים ועסקאות ארוכות טווח בשאילתות פעילות, לקבל המלצות מ-Index Advisor שיעזרו לכם להאיץ את עיבוד השאילתות, ולהגדיל את תקופת השמירה של נתוני המדדים ל-30 ימים. ההמלצות של Index advisor מופעלות באופן אוטומטי כשמפעילים את התכונה 'תובנות לגבי שאילתות' במהדורת Cloud SQL Enterprise Plus. כדי להשבית את ההמלצות של הכלי לייעוץ בנושא אינדקסים, מבטלים את הסימון בתיבת הסימון הזו. כדי להפעיל את ההמלצות של הכלי לייעוץ בנושא אינדקסים ואת פתרון הבעיות בעזרת AI (גרסת Preview), צריך לסמן את התיבה הזו. | לא זמין | זמין
ברירת מחדל: מושבת |
| פתרון בעיות בעזרת AI | מסמנים את התיבה הזו כדי להפעיל זיהוי של אנומליות בביצועים, ניתוח של הסיבות העיקריות וניתוח מצב, ולקבל המלצות לתיקון בעיות בשאילתות ובמסד הנתונים. התכונה הזו נמצאת בגרסת Preview, ואפשר להפעיל אותה ולגשת אליה רק באמצעות מסוף Google Cloud . מידע נוסף זמין במאמר מעקב ופתרון בעיות בעזרת AI. | לא זמין | זמין
ברירת מחדל: מושבת |
| שמירת כתובות ה-IP של הלקוחות | מסמנים את תיבת הסימון הזו כדי להפעיל את האפשרות לאחסון כתובות ה-IP של הלקוחות. ב-Cloud SQL אפשר לאחסן את כתובות ה-IP של המקומות שמהם מגיעות השאילתות, ולקבץ את הנתונים האלה כדי להריץ עליהם מדדים. השאילתות מגיעות מיותר ממארח אחד. בדיקת הגרפים של שאילתות מכתובות IP של לקוחות יכולה לעזור לזהות את מקור הבעיה. | זמין
ברירת מחדל: מושבת |
זמין
ברירת מחדל: מושבת |
| תגים של אפליקציות בחנות | מסמנים את תיבת הסימון הזו כדי להפעיל את האחסון של תגי האפליקציה. אחסון של תגי אפליקציה עוזר לכם לקבוע את ממשקי ה-API ואת המסלולים של model-view-controller (MVC) שמבצעים בקשות, ולקבץ את הנתונים כדי להריץ עליהם מדדים. כדי להשתמש באפשרות הזו, צריך להוסיף הערות לשאילתות עם קבוצה ספציפית של תגים באמצעות ספריית sqlcommenter, שהיא ספריית קוד פתוח למיפוי יחסי של אובייקטים (ORM) עם מכשור אוטומטי. המידע הזה עוזר לתובנות לגבי שאילתות לזהות את מקור הבעיה ואת ה-MVC שממנו הבעיה מגיעה. נתיבי אפליקציות עוזרים לכם לעקוב אחרי אפליקציות. | זמין
ברירת מחדל: מושבת |
זמין
ברירת מחדל: מושבת |
| התאמה אישית של אורכי שאילתות |
מסמנים את תיבת הסימון הזו כדי להתאים אישית את המגבלה של אורך מחרוזת השאילתה.
אורך שאילתה גדול יותר שימושי יותר לשאילתות אנליטיות, אבל הוא גם דורש יותר זיכרון.
כל מחרוזת שאילתה שחורגת מהמגבלה שצוינה תיחתך בתצוגה. כדי לשנות את מגבלת האורך של השאילתה, צריך להפעיל מחדש את המופע. עדיין אפשר להוסיף תגים לשאילתות שחורגות ממגבלת האורך. |
אפשר להגדיר את המגבלה בבייטים מ-256 בייטים עד 4500 בייטים.
ברירת מחדל: 1024.
|
אפשר לציין מגבלה בבייט מ-1 עד 1048576.
ברירת מחדל: 1024 בייטים (1 KB).
|
| הגדרת קצב הדגימה המקסימלי |
מסמנים את תיבת הסימון הזו כדי להגדיר את קצב הדגימה המקסימלי. תדירות הדגימה היא מספר הדוגמאות של תוכניות שאילתות שהופעלו ונאספו בכל דקה בכל מסדי הנתונים במופע. הגדלת קצב הדגימה כנראה תספק לכם יותר נקודות נתונים, אבל יכול להיות שהיא תגדיל את תקורה הביצועים.
כדי להשבית את הדגימה, מגדירים את הערך ל-0.
|
אפשר לשנות את הערך הזה למספר בין 0 ל-20.
ברירת מחדל: 5.
|
אפשר להגדיל את המספר המקסימלי ל-200 כדי לספק יותר נקודות נתונים.
ברירת מחדל: 5.
|
הפעלת תובנות לגבי שאילתות בכמה מופעים
-
נכנסים לדף Cloud SQL Instances במסוף Google Cloud .
- לוחצים על התפריט פעולות נוספות בכל שורה.
- בוחרים באפשרות הפעלת תובנות לגבי שאילתות.
- בתיבת הדו-שיח, מסמנים את התיבה Enable Query insights for multiple instances (הפעלת תובנות לגבי שאילתות בכמה מופעים).
- לוחצים על Enable.
- בתיבת הדו-שיח הבאה, בוחרים את המופעים שרוצים להפעיל בהם את התכונה 'תובנות לגבי שאילתות'.
- לוחצים על הפעלת תובנות לגבי שאילתות.
gcloud
כדי להפעיל את התכונה 'תובנות לגבי שאילתות' במכונת Cloud SQL באמצעות gcloud, מריצים את הפקודה gcloud sql instances patch עם הדגל --insights-config-query-insights-enabled, כמו בדוגמה הבאה, אחרי שמחליפים את INSTANCE_ID במזהה המכונה.
אם מפעילים את התכונה 'תובנות לגבי שאילתות' במכונה במהדורת Cloud SQL Enterprise Plus, ההמלצות של הכלי 'יועץ האינדקסים' מופעלות באופן אוטומטי.
gcloud sql instances patch INSTANCE_ID \ --insights-config-query-insights-enabled
אפשר גם להשתמש באחד או יותר מהדגלים האופציונליים הבאים:
--insights-config-record-client-addressמאחסן את כתובות ה-IP של הלקוחות שממנה מגיעות השאילתות, ועוזר לכם לקבץ את הנתונים האלה כדי להריץ עליהם מדדים. השאילתות מגיעות מיותר ממארח אחד. בדיקת הגרפים של שאילתות מכתובות IP של לקוחות יכולה לעזור לזהות את מקור הבעיה.
--insights-config-record-application-tagsמאחסן תגי אפליקציה שעוזרים לכם לקבוע את ממשקי ה-API ואת המסלולים של בקר התצוגה של המודל (MVC) שמבצעים בקשות, ומקבץ את הנתונים כדי להפעיל מדדים לגביהם. כדי להשתמש באפשרות הזו, צריך להוסיף הערות לשאילתות עם קבוצה ספציפית של תגים. אפשר לעשות זאת באמצעות ספריית sqlcommenter, שהיא ספריית קוד פתוח למיפוי יחסי של אובייקטים (ORM) עם מכשור אוטומטי. המידע הזה עוזר ל-Query Insights לזהות את מקור הבעיה ואת ה-MVC שממנו הבעיה מגיעה. נתיבי אפליקציות עוזרים לכם לעקוב אחרי אפליקציות.
--insights-config-query-string-lengthהגדרת מגבלת ברירת המחדל של אורך השאילתה. אורך שאילתה גדול יותר שימושי יותר לשאילתות אנליטיות, אבל הוא גם דורש יותר זיכרון. כדי לשנות את אורך השאילתה, צריך להפעיל מחדש את המופע. עדיין אפשר להוסיף תגים לשאילתות שחורגות ממגבלת האורך. במהדורת Cloud SQL Enterprise, אפשר לציין ערך בבייט מ-
256עד4500. אורך ברירת המחדל של השאילתה הוא1024בייטים. במהדורת Cloud SQL Enterprise Plus, אפשר לציין מגבלה בבייט מ-1עד1048576. ערך ברירת המחדל הוא1024בייט (1 KB).--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, צריך להפעיל את השיטה instances.patch עם ההגדרות insightsConfig.
אם מפעילים את התכונה 'תובנות לגבי שאילתות' במכונה במהדורת Cloud SQL Enterprise Plus, ההמלצות של הכלי 'יועץ האינדקסים' מופעלות באופן אוטומטי.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- 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
כדי להשתמש ב-Terraform כדי להפעיל את התכונה 'תובנות לגבי שאילתות' במופע Cloud SQL, צריך להגדיר את הדגל query_insights_enabled לערך true.
אם מפעילים את התכונה 'תובנות לגבי שאילתות' במכונה במהדורת Cloud SQL Enterprise Plus, ההמלצות של הכלי 'יועץ האינדקסים' מופעלות באופן אוטומטי.
בנוסף, אפשר להשתמש באחד או יותר מהדגלים האופציונליים הבאים:
-
query_string_length: במהדורת Cloud SQL Enterprise, אפשר לציין ערך בבייטים מ-256עד4500. אורך ברירת המחדל של השאילתה הוא1024בייטים. במהדורת Cloud SQL Enterprise Plus, אפשר לציין מגבלה בבייט מ-1עד1048576. ערך ברירת המחדל הוא1024בייט (1 KB). -
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 בפרויקט ב- Google Cloud , מבצעים את השלבים בקטעים הבאים.
הכנת Cloud Shell
- מפעילים את Cloud Shell.
-
מגדירים את פרויקט ברירת המחדל שבו רוצים להחיל את ההגדרות של Terraform. Google Cloud
תצטרכו להריץ את הפקודה הזו רק פעם אחת לכל פרויקט, ותוכלו לעשות זאת בכל ספרייה.
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!".
- פותחים את Google Cloud הפרויקט כדי לראות את התוצאות. במסוף Google Cloud , נכנסים למשאבים בממשק המשתמש כדי לוודא שהם נוצרו או עודכנו ב-Terraform.
המדדים צפויים להיות זמינים בתובנות לגבי שאילתות תוך דקות ספורות מסיום השאילתה. מעיינים במדיניות בנושא שמירת נתונים ב-Cloud Monitoring.
המעקבים של תובנות לגבי שאילתות מאוחסנים ב-Cloud Trace. מעיינים במדיניות בנושא שמירת נתונים ב-Cloud Trace.
הצגת מרכז הבקרה Query insights
במרכז הבקרה 'תובנות לגבי שאילתות' מוצג עומס השאילתות על סמך גורמים שאתם בוחרים. עומס השאילתות הוא מדד של העבודה הכוללת של כל השאילתות במופע בטווח הזמן שנבחר. מרכז הבקרה כולל סדרה של מסננים שעוזרים לכם להציג את עומס השאילתות.
כדי לפתוח את מרכז הבקרה Query insights:
- כדי לפתוח את הדף סקירה כללית של מכונה, לוחצים על שם המכונה.
- בתפריט הניווט של Cloud SQL, לוחצים על Query insights או על Go to Query insights for more in-depth info on queries and performance בדף Instance overview.
מרכז הבקרה Query insights ייפתח. בהתאם למהדורה שבה אתם משתמשים – 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 ימים או טווח מותאם אישית.
- תרשים עומס מסד הנתונים: הצגת תרשים עומס השאילתות, על סמך נתונים מסוננים.
- קיבולת המעבד, המעבד והמתנה של המעבד, המתנה של קלט/פלט והמתנה של נעילה: מסננים עומסים על סמך האפשרויות שבוחרים. פרטים על כל אחד מהמסננים האלה מופיעים במאמר בנושא צפייה בעומס על מסד הנתונים עבור השאילתות המובילות.
- Queries and Tags: Filters query load by either a selected query or a selected SQL query tag. איך מסננים את הטעינה של מסד הנתונים
הצגת העומס על מסד הנתונים לכל השאילתות
עומס שאילתות במסד נתונים הוא מדד של העבודה (בשניות CPU) שהשאילתות המופעלות במסד הנתונים שנבחר מבצעות לאורך זמן. כל שאילתה שפועלת משתמשת במשאבי מעבד, במשאבי קלט/פלט או במשאבי נעילה, או ממתינה להם. עומס שאילתות במסד הנתונים הוא היחס בין משך הזמן של כל השאילתות שהושלמו בחלון זמן נתון לבין הזמן שחלף בפועל.
במרכז הבקרה של תובנות לגבי שאילתות ברמה העליונה מוצג התרשים עומס על מסד הנתונים – כל השאילתות המובילות. התפריטים הנפתחים בלוח הבקרה מאפשרים לסנן את הגרף לפי מסד נתונים, משתמש או כתובת לקוח ספציפיים.
מהדורת Cloud SQL Enterprise Plus
מהדורת Cloud SQL Enterprise
הקווים הצבעוניים בתרשים מציגים את עומס השאילתות, שמחולק לקטגוריות:
- קיבולת המעבד: מספר המעבדים שזמינים במופע.
- CPU ו-CPU Wait: היחס בין הזמן שלוקח לשאילתות במצב פעיל לבין הזמן שחלף בפועל. המתנות של קלט/פלט ונעילה לא חוסמות שאילתות שנמצאות במצב פעיל. יכול להיות שהמדד הזה מצביע על כך שהשאילתה משתמשת במעבד או ממתינה לתזמן של Linux כדי לתזמן את תהליך השרת שמריץ את השאילתה, בזמן שתהליכים אחרים משתמשים במעבד.
- IO Wait: היחס בין הזמן שלוקח לשאילתות שממתינות ל-IO לבין הזמן שחלף בפועל. ההגדרה 'המתנה לקלט/פלט' כוללת את ההגדרה 'המתנה לקלט/פלט של קריאה' ואת ההגדרה 'המתנה לקלט/פלט של כתיבה'. אם רוצים לראות פירוט של מידע על זמני המתנה של קלט/פלט, אפשר לראות אותו ב-Cloud Monitoring. מידע נוסף זמין במאמר מדדים של Cloud SQL.
- המתנה לנעילה: היחס בין הזמן שלוקח לשאילתות שממתינות לנעילות לבין הזמן שחלף בפועל. היא כוללת את Lock Waits, LwLock Waits ו-Buffer pin Lock waits. כדי לראות פירוט של מידע על זמן ההמתנה לנעילה, משתמשים ב-Cloud Monitoring. מידע נוסף זמין במאמר מדדים של Cloud SQL.
הקווים הצבעוניים בתרשים מציגים את העומס לכל מסד נתונים לפי זמן הביצוע. כדאי לעיין בתרשים ולהשתמש באפשרויות הסינון כדי לבדוק את השאלות הבאות:
- האם עומס השאילתות גבוה? האם יש קפיצות או עלייה בגרף לאורך זמן? אם לא מופיע עומס גבוה, הבעיה לא קשורה לשאילתה.
- כמה זמן העומס גבוה? האם הערך גבוה רק עכשיו או שהוא גבוה כבר הרבה זמן? משתמשים בבורר הטווח כדי לבחור תקופות זמן שונות ולבדוק כמה זמן הבעיה נמשכה. מגדילים את התצוגה כדי לראות חלון זמן שבו נצפו עליות חדות בעומס השאילתות. מגדילים את התצוגה כדי לראות את ציר הזמן של עד שבוע.
- מה גורם לעומס הגבוה? אתם יכולים לבחור אפשרויות לבדיקת קיבולת המעבד, המעבד וההמתנה של המעבד, ההמתנה של הנעילה או ההמתנה של קלט/פלט. התרשים של כל אחת מהאפשרויות האלה מוצג בצבע אחר, כדי שתוכלו לזהות את האפשרות עם העומס הכי גבוה. הקו הכחול הכהה בתרשים מראה את קיבולת המעבד המקסימלית של המערכת. כך אפשר להשוות את עומס השאילתות לקיבולת המקסימלית של מערכת ה-CPU. ההשוואה הזו עוזרת לכם לקבוע אם למכונה וירטואלית מסוימת חסרים משאבי CPU.
- באיזה מסד נתונים העומס גבוה? בוחרים מסדי נתונים שונים מהתפריט הנפתח Databases כדי למצוא את מסדי הנתונים עם העומסים הכי גבוהים.
- האם משתמשים ספציפיים או כתובות IP ספציפיות גורמים לעומסים גבוהים יותר? בוחרים משתמשים וכתובות שונים מהתפריטים הנפתחים כדי לזהות את אלה שגורמים לעומסים גבוהים יותר.
סינון הטעינה של מסד הנתונים
אפשר לסנן את העומס על מסד הנתונים לפי שאילתות או תגים. אם אתם משתמשים ב-query insights במהדורת Cloud SQL Enterprise Plus, אתם יכולים להתאים אישית את תרשים העומס של מסד הנתונים כדי לפרק את הנתונים שמוצגים באמצעות אחד מהמדדים הבאים:כל השאילתות
סוגי אירועים של המתנה
מסדי נתונים
משתמשים
תגים
כתובות של לקוחות
כדי להתאים אישית את תרשים העומס של מסד הנתונים, בוחרים מאפיין מהתפריט הנפתח עומס מסד הנתונים לפי זמן ביצוע.
הצגת התורמים העיקריים לעומס על מסד הנתונים
כדי לראות את הגורמים העיקריים שמשפיעים על עומס מסד הנתונים, אפשר להשתמש בטבלה 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.
|
| מסדי נתונים | בטבלה מוצגת רשימה של מסדי הנתונים המובילים שתרמו לטעינה במהלך התקופה שנבחרה בכל השאילתות שהופעלו.
|
| משתמשים | בטבלה מוצגת רשימה של המשתמשים המובילים בטווח הזמן שנבחר
בכל השאילתות שהופעלו.
|
| תגים | מידע על תגים זמין במאמר בנושא סינון לפי תגי שאילתה. |
| כתובות של לקוחות | בטבלה מוצגת רשימה של המשתמשים המובילים בטווח הזמן שנבחר
בכל השאילתות שהופעלו.
|
סינון לפי שאילתות
בטבלה המאפיינים המובילים לפי עומס על מסד הנתונים מוצגת סקירה כללית של השאילתות שגורמות לעומס הכי גדול על השאילתות. בטבלה מוצגות כל השאילתות שעברו נרמול בטווח הזמן והאפשרויות שנבחרו בלוח הבקרה 'תובנות לגבי שאילתות'. הוא ממיין את השאילתות לפי זמן הביצוע הכולל במהלך טווח הזמן שבחרתם.
מהדורת Cloud SQL Enterprise Plus
כדי למיין את הטבלה, בוחרים כותרת של עמודה.
מהדורת Cloud SQL Enterprise
כדי למיין את הטבלה, בוחרים כותרת עמודה או נכס מתוך Filter queries (סינון שאילתות).
בטבלה מוצגים המאפיינים הבאים:
- שאילתה: מחרוזת השאילתה המנורמלת. כברירת מחדל, בתובנות לגבי שאילתות מוצגים רק 1,024 תווים במחרוזת השאילתה.
שאילתות עם התווית
UTILITY COMMANDכוללות בדרך כלל פקודותBEGIN,COMMITו-EXPLAINאו פקודות wrapper. - מסד נתונים: מסד הנתונים שעליו הופעלה השאילתה.
- המלצות: ההמלצות המוצעות, כמו יצירת אינדקסים, לשיפור הביצועים של השאילתות.
- טעינה לפי זמן כולל/טעינה לפי CPU/טעינה לפי IO wait/טעינה לפי lock wait: האפשרויות שבהן אפשר לסנן שאילתות ספציפיות כדי למצוא את העומס הגדול ביותר.
- % load by Queries: The percentage load by individual query.
- ניתוח זמן האחזור: אם הפעלתם את פתרון בעיות בעזרת AI (גרסת Preview) עבור המופע הזה, תוכלו ללחוץ על הקישור הזה כדי לפתור בעיות שקשורות לשאילתות איטיות.
- זמן ביצוע ממוצע (אלפיות שנייה): הזמן הממוצע שנדרש לביצוע השאילתה.
- מספר הפעמים שהייתה קריאה: מספר הפעמים שהאפליקציה קראה את השאילתה.
- מספר השורות הממוצע שהוחזר: המספר הממוצע של השורות שהוחזרו עבור השאילתה.
- מספר השורות הממוצע שנסרק: המספר הממוצע של השורות שנסרקו בשאילתה.
התכונה 'תובנות לגבי שאילתות' מאחסנת ומציגה רק שאילתות שעברו נורמליזציה.
כברירת מחדל, התכונה 'תובנות לגבי שאילתות' לא אוספת כתובות IP או מידע על תגים. אפשר להפעיל את התכונה 'תובנות לגבי שאילתות' כדי לאסוף את המידע הזה, ולהשבית את האיסוף כשנדרש.
במעקב אחר תוכנית השאילתה לא נאספים או נשמרים ערכים קבועים, ומוסרים פרטים אישיים מזהים שערך קבוע עשוי להציג.
בתובנות לגבי שאילתות מוצגות שאילתות שעברו נרמול, כלומר ? מחליף את הערך הקבוע המילולי. בדוגמה הבאה, הקבוע 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 או לוחצים על כותרת של עמודה. בטבלה מוצגים המאפיינים הבאים:
- פעולה, בקר, מסגרת, נתיב, אפליקציה, מנהל התקן של מסד הנתונים: כל נכס שהוספתם לשאילתות מופיע כעמודה. אם רוצים לסנן לפי תגים, צריך להוסיף לפחות אחד מהמאפיינים האלה.
- טעינה לפי זמן כולל/טעינה לפי CPU/טעינה לפי IO wait/טעינה לפי lock wait: אפשרויות לסינון שאילתות ספציפיות כדי למצוא את העומס הגדול ביותר לכל אפשרות.
- זמן ביצוע ממוצע (אלפיות שנייה): הזמן הממוצע שנדרש להרצת השאילתה.
- מספר השורות הממוצע שהוחזר: המספר הממוצע של השורות שהוחזרו עבור השאילתה.
- מספר השורות הממוצע שנסרקו: המספר הממוצע של השורות שנסרקו בשאילתה.
- מספר הפעמים שהתבצעה קריאה: מספר הפעמים שהאפליקציה קראה את השאילתה.
- Database: מסד הנתונים שהשאילתה הופעלה מולו.
הצגת פרטי שאילתה לגבי שאילתה או תג ספציפיים
כדי לקבוע אם שאילתה או תג ספציפיים הם שורש הבעיה, מבצעים את הפעולות הבאות בכרטיסייה Queries או בכרטיסייה Tags, בהתאם:
- כדי למיין את הרשימה בסדר יורד, לוחצים על הכותרת טעינה לפי זמן כולל.
- לוחצים על השאילתה או על התג בחלק העליון של הרשימה. העומס עליו הוא הגבוה ביותר והוא לוקח יותר זמן מהאחרים.
הדף Query details נפתח ומוצגים בו הפרטים של השאילתה או התג שנבחרו.
בדיקת עומס של שאילתה ספציפית
דף פרטי השאילתה עבור שאילתה שנבחרה מופיע כך:
בתרשים Database load — specific query (עומס על מסד הנתונים – שאילתה ספציפית) מוצג מדד של העבודה (בשניות CPU) שהשאילתה הנורמלית ביצעה בשאילתה שנבחרה לאורך זמן. כדי לחשב את העומס, המערכת משתמשת בכמות הזמן שלוקח לשאילתות המנורמלות שהושלמו בגבול הדקה עד לשעה שמוצגת בשעון. בחלק העליון של הטבלה מוצגים 1,024 התווים הראשונים של השאילתה הנורמלית, אחרי הסרת ליטרלים לצורך צבירת נתונים ומטעמי פרטים אישיים מזהים (PII).
בדומה לתרשים של סך כל השאילתות, אפשר לסנן את העומס של שאילתה ספציפית לפי מסד נתונים, משתמש וכתובת לקוח. עומס השאילתות מחולק ל-CPU capacity, CPU and CPU wait, IO wait ו-Lock wait.
בדיקת עומס של שאילתה ספציפית עם תג
מרכז הבקרה של תג שנבחר מוצג באופן הבא. לדוגמה, אם כל השאילתות מתשלום של מיקרו-שירותים מתויגות בתג payment, אפשר לראות את כמות עומס השאילתות שמתפתחת על ידי הצגת התג payment.
בתרשים Database load — specific tags (עומס על מסד הנתונים – תגים ספציפיים) מוצגת מדידה של העבודה (בשניות CPU) שבוצעה במסד הנתונים שנבחר על ידי שאילתות שתואמות לתגים שנבחרו, לאורך זמן. בדומה לתרשים של סך השאילתות, אפשר לסנן את העומס של תג ספציפי לפי מסד נתונים, משתמש וכתובת לקוח.
בדיקת פעולות בתוכנית שאילתה שנדגמה
תוכנית שאילתה לוקחת מדגם של השאילתה ומפרקת אותה לפעולות נפרדות. הוא מסביר ומנתח כל פעולה בשאילתה.
ב-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.
בתוכנית לדוגמה של שאילתה מוצג ניתוח EXPLAIN לדוגמאות של תוכניות שאילתות שקשורות לשאילתה הנורמלית. אלה תוכניות שאילתות שמופעלות ומספקות פירוט של הזמן הפעיל שלוקח לכל פעולה בתוכנית השאילתות.
בתרשים Query plan samples מוצגות כל תוכניות השאילתות שפועלות בזמנים מסוימים, ומשך הזמן שלקח לכל תוכנית לפעול. אתם יכולים לשנות את קצב הדגימה של תוכניות השאילתות בדקה. איך מפעילים את Query Insights
כברירת מחדל, בחלונית בצד שמאל מוצגים הפרטים של תוכנית השאילתה לדוגמה שלוקחת הכי הרבה זמן, כפי שניתן לראות בתרשים Query plan samples. כדי לראות את הפרטים של תוכנית שאילתה לדוגמה אחרת, לוחצים על העיגול הרלוונטי בתרשים. בפרטים המורחבים מוצג מודל של כל הפעולות בתוכנית השאילתות.
בכל פעולה מוצגים זמן האחזור, השורות שהוחזרו והעלות של הפעולה. כשבוחרים פעולה, אפשר לראות פרטים נוספים, כמו בלוקים של היטים משותפים, סוג הסכימה, לולאות ושורות של תוכניות.
כדי לצמצם את הבעיה, כדאי לעיין בשאלות הבאות:
- מהי צריכת המשאבים?
- איך היא קשורה לשאילתות אחרות?
- האם הרגלי הצפייה משתנים לאורך זמן?
בדיקת מעקב שנוצר על ידי שאילתה לדוגמה
בנוסף לצפייה בתוכנית השאילתה לדוגמה, אפשר להשתמש בתובנות לגבי שאילתות כדי לראות מעקב של אפליקציה מקצה לקצה בהקשר של שאילתה לדוגמה. המעקב הזה יכול לעזור לכם לזהות את המקור של שאילתה בעייתית, כי הוא מציג את פעילות מסד הנתונים עבור בקשה ספציפית. בנוסף, רשומות ביומן שהאפליקציה שולחת אל Cloud Logging במהלך הבקשה מקושרות ל-Trace, מה שעוזר לכם בחקירה.
כדי לראות את המעקב בהקשר:
- במסך Sample Query (שאילתה לדוגמה), לוחצים על הכרטיסייה End-to-end Trace (מעקב מקצה לקצה). בכרטיסייה הזו מוצג תרשים גאנט שמפרט את טווחי הזמן, שהם רשומות של פעולות ספציפיות, של העקבות שנוצרו על ידי השאילתה.
- כדי לראות פרטים נוספים על כל יחידה לוגית למעקב, כמו מאפיינים ומטא-נתונים, בוחרים את היחידה הלוגית למעקב.
אפשר לראות את העקבות גם בדף Trace Explorer. כדי לעשות זאת, לוחצים על הצגה ב-Cloud Trace. מידע נוסף על השימוש בדף Trace Explorer כדי לנתח את נתוני העקבות זמין במאמר חיפוש עקבות וניתוח שלהם.
בדיקת זמן האחזור
זמן האחזור הוא משך הזמן שנדרש להשלמת השאילתה המנורמלת, לפי זמן שעון הקיר. אפשר להשתמש בתרשים השהיה כדי לבדוק את ההשהיה בשאילתה או בתג. בלוח הבקרה של זמן האחזור מוצגים האחוזונים ה-50, ה-95 וה-99 של זמני האחזור, כדי לזהות התנהגויות חריגות.
בתמונה הבאה מוצג תרשים העומס של מסד הנתונים באחוזון ה-50 עבור שאילתה ספציפית עם מסננים שנבחרו לקיבולת המעבד, למעבד ולזמן ההמתנה של המעבד, לזמן ההמתנה של קלט/פלט ולזמן ההמתנה של נעילה.
החביון של שאילתות מקבילות נמדד בזמן שעון, למרות שעומס השאילתה יכול להיות גבוה יותר בשאילתה בגלל שימוש בכמה ליבות להרצת חלק מהשאילתה.
כדי לצמצם את הבעיה, כדאי לעיין בשאלות הבאות:
- מה גורם לעומס הגבוה? בוחרים באפשרויות כדי לראות את קיבולת המעבד, המעבד וההמתנה של המעבד, ההמתנה של קלט/פלט או ההמתנה של נעילה.
- כמה זמן העומס גבוה? האם המחיר גבוה רק עכשיו? או שהיא גבוהה כבר הרבה זמן? משנים את טווח הזמן כדי למצוא את התאריך והשעה שבהם העומס התחיל לפגוע בביצועים.
- האם היו עליות פתאומיות בזמן האחזור? משנים את חלון הזמן כדי לבדוק את זמן האחזור ההיסטורי של השאילתה הנורמלית.
הוספת תגים לשאילתות 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=''
התכונה 'תובנות לגבי שאילתות' משמיטה את כל המפתחות האחרים.
השבתת התובנות לגבי שאילתות
המסוף
כדי להשבית את התכונה 'תובנות לגבי שאילתות' במופע Cloud SQL באמצעות Google Cloud המסוף, מבצעים את השלבים הבאים:
-
נכנסים לדף Cloud SQL Instances במסוף Google Cloud .
- כדי לפתוח את הדף סקירה כללית של מכונה, לוחצים על שם המכונה.
- בכרטיס Configuration (הגדרות), לוחצים על Edit configuration (עריכת ההגדרות).
- בקטע אפשרויות הגדרה, מרחיבים את תובנות לגבי שאילתות.
- מבטלים את הסימון של תיבת הסימון הפעלת תובנות לגבי שאילתות.
- לוחצים על Save.
gcloud
כדי להשבית את התכונה 'תובנות לגבי שאילתות' במכונת 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
כדי להשבית את התכונה 'תובנות לגבי שאילתות' במופע 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"
}
השבתת התכונה 'תובנות לגבי שאילתות' במהדורת Cloud SQL Enterprise Plus
כדי להשבית את התכונה 'תובנות לגבי שאילתות' במהדורת Cloud SQL Enterprise Plus, מבצעים את הפעולות הבאות:
-
נכנסים לדף Cloud SQL Instances במסוף Google Cloud .
- כדי לפתוח את הדף סקירה כללית של מכונה, לוחצים על שם המכונה.
- לוחצים על Edit.
- בקטע Customize your instance (התאמה אישית של המופע), מרחיבים את Query insights (תובנות לגבי שאילתות).
- מבטלים את הסימון של תיבת הסימון הפעלת התכונות של Enterprise Plus.
- לוחצים על Save.
המאמרים הבאים
- פוסט בבלוג על ההשקה: פתרון צווארי בקבוק במסד נתונים מהר יותר באמצעות התובנות העדכניות לגבי שאילתות במהדורת Cloud SQL Enterprise Plus
- Google Cloud מדדים
- בלוג: שיפור היכולות שלכם לפתרון בעיות בביצועים של שאילתות באמצעות Cloud SQL Insights
- סרטון: היכרות עם Cloud SQL Insights
- פודקאסט: Cloud SQL Insights
- Codelab בנושא תובנות
- שיפור השימוש הגבוה ב-CPU
- אופטימיזציה של שימוש בזיכרון רב
- בלוג: היכרות עם Sqlcommenter: ספריית קוד פתוח לתיעוד אוטומטי של ORM
- בלוג: הפעלת תיוג של שאילתות באמצעות Sqlcommenter