שימוש בתובנות לגבי שאילתות כדי לשפר את ביצועי השאילתות

בדף הזה מוסבר איך להשתמש בלוח הבקרה 'תובנות לגבי שאילתות' כדי לזהות ולנתח בעיות בביצועים של השאילתות.

מבוא

התכונה Query Insights עוזרת לכם לזהות, לאבחן ולמנוע בעיות בביצועי שאילתות במסדי נתונים של Cloud SQL. הוא תומך בניטור אינטואיטיבי ומספק מידע אבחוני שעוזר לכם לזהות את שורש הבעיה של בעיות בביצועים, ולא רק לזהות את הבעיות עצמן.

בעזרת תובנות לגבי שאילתות, אפשר לעקוב אחרי הביצועים ברמת האפליקציה ולעקוב אחרי המקור של שאילתה בעייתית במערך האפליקציות לפי מודל, תצוגה, בקר, נתיב, משתמש ומארח. אפשר לשלב את כלי התובנות לגבי שאילתות עם הכלים והשירותים הקיימים שלכם לניטור אפליקציות (APM) באמצעות תקנים ו-API פתוחים. Cloud de Confiance by S3NSכך תוכלו לעקוב אחרי בעיות בשאילתות ולפתור אותן באמצעות הכלי המועדף עליכם.

התובנות לגבי שאילתות עוזרות לכם לשפר את ביצועי שאילתות ה-SQL ב-Cloud SQL באמצעות השלבים הבאים:

Query insights במהדורת Cloud SQL Enterprise Plus

אם אתם משתמשים במהדורת Cloud SQL Enterprise Plus, תוכלו לגשת ליכולות נוספות ב-Query Insights כדי לבצע אבחון מתקדם של ביצועי השאילתות. בנוסף ליכולות הרגילות של לוח הבקרה Query Insights, מהדורת Cloud SQL Enterprise Plus מאפשרת לכם לבצע את הפעולות הבאות:

  • תיעוד וניתוח של אירועי המתנה לכל השאילתות שהופעלו.
  • סינון של עומס מסד הנתונים המצטבר לפי מאפיינים נוספים כמו שאילתות, תגים, סוגי אירועי המתנה ועוד.
  • תיעוד של תוכניות שאילתה לכל השאילתות שהופעלו.
  • דגימה של עד 200 תוכניות שאילתה בדקה.
  • לכידת טקסט ארוך יותר של שאילתה, עד 100 KB.
  • קבלת עדכונים כמעט בזמן אמת לגבי מדדים (בסדר גודל של שניות).
  • שמירה של מדדים למשך 30 ימים.
  • קבלת המלצות לאינדקס מיועץ האינדקסים.
  • סיום של סשן או של עסקה שפועלת במשך זמן רב בשאילתות פעילות.
  • גישה לפתרון בעיות בעזרת AI (גרסת Preview).

בטבלה הבאה מוצגת השוואה בין הדרישות הפונקציונליות והיכולות של Query Insights במהדורת Cloud SQL Enterprise לבין Query Insights במהדורת Cloud SQL Enterprise Plus.

אזור ההשוואה Query Insights במהדורת Cloud SQL Enterprise Query insights במהדורת Cloud SQL Enterprise Plus
גרסאות נתמכות של מסדי נתונים ‫PostgreSQL 9.6 ואילך ‫PostgreSQL 12 ואילך
סוגי מכונות נתמכים נתמך בכל סוגי המכונות לא נתמך במופעים שמשתמשים בסוג מכונה עם ליבה משותפת או במופעים של העתק לקריאה
אזורים נתמכים מיקומים אזוריים של Cloud SQL מיקומים אזוריים של מהדורת Cloud SQL Enterprise Plus
תקופת השמירה של מדדים 7 ימים 30 ימים
מגבלת האורך המקסימלי של שאילתה ‫4,500 בייטים ‫100 KB
הערך המקסימלי של דגימת תוכנית שאילתה 20 200
ניתוח אירועי המתנה לא זמין זמין
המלצות של Index advisor לא זמין זמין
הפסקת סשנים או עסקאות שפועלות במשך זמן רב בשאילתות פעילות לא זמין זמין
פתרון בעיות בעזרת AI (תצוגה מקדימה) לא זמין זמין
מגבלות על מספר הערכים הייחודיים בשאילתות הדוח מציג את הנתונים הסטטיסטיים המצטברים של עד 100 השאילתות המובילות עם שילוב של כתובות IP של לקוחות, מסדי נתונים, תג אפליקציה, שמות משתמשים וטקסט השאילתה לכל יום. מדווח על הנתונים הסטטיסטיים המצטברים של עד 4,000 השאילתות המובילות בשילוב של תג אפליקציה, מסדי נתונים, שמות משתמשים ומזהה שאילתה לדקה.

הפעלת Query Insights במהדורת Cloud SQL Enterprise Plus

כדי להפעיל את Query Insights במהדורת Cloud SQL Enterprise Plus, בוחרים באפשרות Enable Enterprise Plus features כשמפעילים את Query Insights במופע של Cloud SQL Enterprise Plus.

תמחור

אין עלות נוספת לשימוש ב-Query Insights במופעים של מהדורת Cloud SQL Enterprise או מהדורת Cloud SQL Enterprise Plus.

דרישות אחסון

התכונה Query Insights במהדורת Cloud SQL Enterprise לא תופסת נפח אחסון במכונה של Cloud SQL. המדדים מאוחסנים ב-Cloud Monitoring. לגבי בקשות API, ראו תמחור של Cloud Monitoring. יש רמה של Cloud Monitoring שאפשר להשתמש בה ללא עלות נוספת.

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

נפח האחסון הנדרש לנתונים של שבעה ימים הוא בערך 36 GB. ל-30 ימים, תצטרכו נפח אחסון של כ-155 GB. התכונה Query Insights במהדורת Cloud SQL Enterprise Plus משתמשת בזיכרון RAM (זיכרון משותף) של עד 10 MB. המדדים צפויים להיות זמינים בתובנות לגבי שאילתות תוך 30 שניות מסיום השאילתה. חלות עמלות אחסון.

מגבלות

המגבלות הבאות חלות על Query Insights במופעים של Cloud SQL במהדורת Enterprise Plus:

  • אם יש עומס רב על המערכת של המופע, יכול להיות שהשאילתות שלכם ייטענו לאט או שיופעל להן פסק זמן כשאתם שולחים שאילתות לנתוני מדדים בלוח הבקרה תובנות לגבי שאילתות.
  • כשמשחזרים מכונה במהדורת Cloud SQL Enterprise Plus מגיבוי ישן יותר, יכול להיות שתאבדו את המדדים שנאספו בין מועד הגיבוי לבין מועד השחזור של המכונה. לדוגמה, אם תשחזרו את המופע ב-30 באפריל עם גיבוי שנוצר ב-25 באפריל, יכול להיות שתאבדו את כל המדדים בין 25 באפריל ל-30 באפריל.
  • אם המופע שלכם משתמש ב-PostgreSQL 18 ופועלת בו גרסת תחזוקה מוקדמת יותר מ-20260319.00_RC02, ובשאילתה שלכם יש תגי הערות לפני תחילת הצהרת ה-SQL, יכול להיות שהתגים של האפליקציה לא יישמרו כשמשתמשים בתובנות לגבי שאילתות. המגבלה הזו חלה על מופעים של Cloud SQL Enterprise Plus ו-Cloud SQL Enterprise.

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

לפני שמשתמשים בתובנות לגבי שאילתות, צריך לבצע את הפעולות הבאות.

  1. הוספת תפקידים והרשאות נדרשים
  2. הפעלת Cloud Trace API.
  3. אם אתם משתמשים בתובנות לגבי שאילתות במהדורת Cloud SQL Enterprise Plus, אתם צריכים לוודא שהאפשרות הגדלת נפח האחסון באופן אוטומטי מופעלת עבור המופע.

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

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

להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

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

הפעלת Cloud Trace API

כדי לראות את תוכניות השאילתות ואת התצוגות מקצה לקצה שלהן, צריך להפעיל את Cloud Trace API ב Cloud de Confiance פרויקט. ההגדרה הזו מאפשרת לכם לקבל נתוני מעקב ממקורות מאומתים בCloud de Confiance פרויקט ללא עלות נוספת. הנתונים האלה יכולים לעזור לכם לזהות ולאבחן בעיות בביצועים במופע שלכם.

כדי לוודא ש-Cloud Trace API מופעל, פועלים לפי השלבים הבאים:

  1. במסוף Cloud de Confiance , עוברים אל APIs and Services:

    כניסה אל APIs and Services

  2. לוחצים על Enable APIs and Services.
  3. בסרגל החיפוש, מזינים Cloud Trace API.
  4. אם מוצגת האפשרות API enabled, סימן שה-API הזה מופעל ואין צורך לעשות דבר. אחרת, לוחצים על Enable.

הפעלה של הגדלת נפח האחסון באופן אוטומטי

אם אתם משתמשים בתכונה 'תובנות לגבי שאילתות' במהדורת Cloud SQL Enterprise Plus, חשוב לוודא שההגדרה של המופע enable automatic storage increases (הגדלת נפח האחסון באופן אוטומטי) נשארת מופעלת. כברירת מחדל, האפשרות הזו מופעלת במופעים של Cloud SQL.

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

הפעלת תובנות לגבי שאילתות

לפני שמפעילים את התכונה 'תובנות לגבי שאילתות', חשוב לשים לב לדרישות הבאות לגבי הפעלה מחדש:

  • אם המכונה שלכם פועלת עם גרסת תחזוקה של PostgreSQL‏ 20250302.00_RC30 או גרסה מוקדמת יותר, ואתם מפעילים את התכונה 'תובנות לגבי שאילתות' ב-Cloud SQL Enterprise Plus, המכונה תופעל מחדש. יכולות לעבור כמה דקות עד שהמופע יהיה זמין שוב. כתוצאה מכך, כל הפעולות האחרות מושעות באופן זמני, כולל הפעולות הבאות:

    • בדיקות תקינות
    • רישום ביומן
    • מעקב
    • פעולות אחרות שקשורות למופע
  • אם המכונה שלכם מריצה את גרסת התחזוקה של PostgreSQL‏ 20250302.00_RC31 או גרסה מתקדמת יותר, ואתם מפעילים את התכונה 'תובנות לגבי שאילתות', לא נדרשת הפעלה מחדש והפעולות במכונה נשארות זמינות.

  • אין תמיכה במעקב אחרי כתובות IP של לקוחות במופעים שבהם מופעלת תכונת ניהול מאגר חיבורים. אם המופע שלכם משתמש בניהול מאגר חיבורים, כתובות ה-IP של הלקוח עבור יציאות 3307 ו-6432 מוצגות כ-local.

המסוף

הפעלת תובנות לגבי שאילתות במופע

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

    כניסה לדף Cloud SQL Instances

  2. כדי לפתוח את הדף סקירה כללית של מכונה, לוחצים על שם המכונה.
  3. בכרטיס Configuration (הגדרות), לוחצים על Edit configuration (עריכת ההגדרות).
  4. בקטע Customize your instance (התאמה אישית של המופע), מרחיבים את האפשרות Query insights (תובנות לגבי שאילתות).
  5. מסמנים את התיבה הפעלת תובנות לגבי שאילתות.
  6. אופציונלי: בוחרים תכונות נוספות למופע. חלק מהתכונות זמינות רק במהדורת Cloud SQL Enterprise Plus.
  7. תכונה תיאור מהדורת Cloud SQL Enterprise מהדורת Cloud SQL Enterprise Plus
    הפעלת תכונות של Enterprise Plus מסמנים את התיבה הזו כדי להפעיל את התכונה Query Insights במהדורת Cloud SQL Enterprise Plus ב-Cloud SQL. תובנות לגבי שאילתות במהדורת Cloud SQL Enterprise Plus מאפשרות לסיים סשנים ועסקאות ארוכות טווח בשאילתות פעילות, ומאריכות את תקופת השמירה של נתוני המדדים ל-30 ימים. כדי להפעיל את פתרון הבעיות בעזרת AI (תצוגה מקדימה), צריך לסמן את תיבת הסימון הזו. לא זמין זמין

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

    ברירת מחדל: מושבת
    זמין

    ברירת מחדל: מושבת
    המלצות של Index advisor מספק המלצות לאינדקסים כדי להאיץ את עיבוד השאילתות. מידע נוסף זמין במאמר בנושא שימוש בכלי לייעוץ בנושא אינדקסים. אם המכונה שלכם פועלת עם גרסת התחזוקה של PostgreSQL‏ `20250302.00_RC30` או גרסה קודמת, ואתם מפעילים את הכלי להמלצות על אינדקסים, המכונה תופעל מחדש. אם משביתים את הכלי לייעוץ בנושא אינדקסים, לא צריך להפעיל מחדש את המכונה. לא זמין זמין

    ברירת מחדל: מושבת
    פתרון בעיות בעזרת AI מסמנים את התיבה הזו כדי להפעיל זיהוי של אנומליות בביצועים, ניתוח של הסיבה העיקרית וניתוח מצב, ולקבל המלצות לתיקון בעיות בשאילתות ובמסד הנתונים. התכונה הזו נמצאת בגרסת Preview, ואפשר להפעיל אותה ולגשת אליה רק באמצעות מסוף Cloud de Confiance . מידע נוסף זמין במאמר מעקב ופתרון בעיות בעזרת AI. לא זמין זמין

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

    ברירת מחדל: מושבת
    זמין

    ברירת מחדל: מושבת
    תגים של אפליקציות בחנות מסמנים את תיבת הסימון הזה כדי להפעיל את האחסון של תגי האפליקציה. אחסון של תגי אפליקציה עוזר לכם לקבוע את ממשקי ה-API ואת המסלולים של בקר התצוגה של המודל (MVC) שמבצעים בקשות, ולקבץ את הנתונים כדי להפעיל מדדים על הנתונים. כדי להשתמש באפשרות הזו, צריך להוסיף הערות לשאילתות עם קבוצה ספציפית של תגים באמצעות ספריית sqlcommenter, שהיא ספריית קוד פתוח למיפוי יחסי של אובייקטים (ORM) עם מכשור אוטומטי. המידע הזה עוזר לתובנות לגבי שאילתות לזהות את מקור הבעיה ואת ה-MVC שממנו הבעיה מגיעה. נתיבי אפליקציות עוזרים לכם לעקוב אחרי אפליקציות. זמין

    ברירת מחדל: מושבת
    זמין

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

    אם מריצים את PostgreSQL maintenance version 20250302.00_RC31 או גרסה מתקדמת יותר, לא צריך להפעיל מחדש את המופע כשמשנים את המגבלה על אורך השאילתה. עדיין אפשר להוסיף תגים לשאילתות שחורגות ממגבלת האורך.
    אפשר להגדיר את המגבלה בבייטים מ-256 בייטים עד 4500 בייטים.

    ברירת מחדל: 1024.
    אפשר לציין מגבלה בבייט מ-1024 עד 100000.



    ברירת מחדל: 10000 בייט.

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

    ברירת מחדל: 5.
    אפשר להגדיל את המספר המקסימלי ל-200 כדי לספק יותר נקודות נתונים.

    ברירת מחדל: 200
  8. לוחצים על Save.

הפעלת תובנות לגבי שאילתות בכמה מופעים

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

    כניסה לדף Cloud SQL Instances

  2. לוחצים על התפריט פעולות נוספות בכל שורה.
  3. בוחרים באפשרות הפעלת תובנות לגבי שאילתות.
  4. בתיבת הדו-שיח, מסמנים את התיבה Enable Query insights for multiple instances (הפעלת תובנות לגבי שאילתות עבור כמה מופעים).
  5. לוחצים על Enable.
  6. בתיבת הדו-שיח הבאה, בוחרים את המופעים שרוצים להפעיל בהם את התכונה 'תובנות לגבי שאילתות'.
  7. לוחצים על הפעלת תובנות לגבי שאילתות.

gcloud

כדי להפעיל את התכונה 'תובנות לגבי שאילתות' במכונת Cloud SQL באמצעות gcloud, מריצים את הפקודה gcloud sql instances patch עם הדגל --insights-config-query-insights-enabled, כמו בדוגמה הבאה. צריך להחליף את INSTANCE_ID במזהה המכונה.

    gcloud sql instances patch INSTANCE_ID \
    --insights-config-query-insights-enabled
  

אפשר גם להשתמש באחד או יותר מהדגלים האופציונליים הבאים:

  • --insights-config-record-client-address

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

  • --insights-config-record-application-tags

    מאחסן תגים של אפליקציות שעוזרים לכם לקבוע את ממשקי ה-API ואת המסלולים של model-view-controller ‏ (MVC) שמבצעים בקשות, ומקבץ את הנתונים כדי להפעיל מדדים על הנתונים. כדי להשתמש באפשרות הזו, צריך להוסיף הערות לשאילתות עם קבוצה ספציפית של תגים. אפשר לעשות זאת באמצעות ספריית sqlcommenter, שהיא ספריית קוד פתוח למיפוי יחסי בין אובייקטים (ORM) עם מכשור אוטומטי. המידע הזה עוזר ל-Query Insights לזהות את מקור הבעיה ואת ה-MVC שממנו הבעיה מגיעה. נתיבי אפליקציות עוזרים לכם לעקוב אחרי אפליקציות.

  • --insights-config-query-string-length

    הגדרת מגבלת ברירת המחדל של אורך השאילתה. אורך שאילתה גדול יותר שימושי יותר לשאילתות אנליטיות, אבל הוא גם דורש יותר זיכרון. אם אתם מריצים את גרסת התחזוקה של PostgreSQL‏ 20250302.00_RC31 ואילך, אז לא צריך להפעיל מחדש את המכונה כשמשנים את מגבלת אורך השאילתה. עדיין אפשר להוסיף תגים לשאילתות שחורגות ממגבלת האורך. במהדורת Cloud SQL Enterprise, אפשר לציין ערך בבייט מ-256 עד 4500. אורך ברירת המחדל של השאילתה הוא 1024 בייטים. במהדורת Cloud SQL Enterprise Plus, אפשר לציין מגבלה בבייטים מ-1024 עד 100000. ערך ברירת המחדל הוא 10000 בייט.

  • --insights-config-query-plans-per-minute

    כברירת מחדל, המערכת מתעדת עד 5 דוגמאות של תוכניות שאילתות שהופעלו בכל דקה בכל מסדי הנתונים במופע. הגדלת קצב הדגימה כנראה תספק לכם יותר נקודות נתונים, אבל יכול להיות שתתווסף תקורה של ביצועים. כדי להשבית את הדגימה, מגדירים את הערך הזה ל-0. במהדורת Cloud SQL Enterprise, אפשר לשנות את הערך מ-0 ל-20. במהדורת Cloud SQL Enterprise Plus, אפשר להגדיל את הערך המקסימלי עד 200 כדי לספק יותר נקודות נתונים. כברירת מחדל, קצב הדגימה המקסימלי הוא 200 דוגמאות של תוכניות שאילתות בדקה בכל מסדי הנתונים במופע.

מחליפים את מה שכתוב בשדות הבאים:

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.

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • 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 כדי להפעיל את Query Insights במופע של Cloud SQL, מגדירים את הדגל query_insights_enabled לערך true.

אפשר גם להשתמש באחד או יותר מהדגלים האופציונליים הבאים:

  • query_string_length: במהדורת Cloud SQL Enterprise, אפשר לציין ערך בבייטים מ-256 עד 4500. אורך ברירת המחדל של השאילתה הוא 1024 בייטים. במהדורת Cloud SQL Enterprise Plus, אפשר לציין מגבלה בבייטים מ-1024 עד 100000. ערך ברירת המחדל הוא 10000 בייט.
  • 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 כדי לספק יותר נקודות נתונים. שיעור הדגימה המקסימלי שמוגדר כברירת מחדל הוא 200 דגימות של תוכניות שאילתות בדקה בכל מסדי הנתונים במופע.

הנה דוגמה:

  resource "google_sql_database_instance" "INSTANCE_NAME" {
  name                = "INSTANCE_NAME"
  database_version    = "POSTGRESQL_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

  1. מפעילים את Cloud Shell.
  2. מגדירים את פרויקט ברירת המחדל שבו רוצים להחיל את ההגדרות של Terraform. Cloud de Confiance

    תצטרכו להריץ את הפקודה הזו רק פעם אחת לכל פרויקט, ותוכלו לעשות זאת בכל ספרייה.

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

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

הכנת הספרייה

לכל קובץ תצורה של Terraform צריכה להיות ספרייה משלו (שנקראת גם מודול ברמה הבסיסית).

  1. יוצרים ספרייה חדשה ב-Cloud Shell ובה יוצרים קובץ חדש. שם הקובץ חייב לכלול את הסיומת .tf, למשל main.tf. במדריך הזה, הקובץ נקרא main.tf.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. אם אתם עוקבים אחרי המדריך, תוכלו להעתיק את הקוד לדוגמה בכל קטע או שלב.

    מעתיקים את הקוד לדוגמה בקובץ main.tf החדש שיצרתם.

    לחלופין, אפשר גם להעתיק את הקוד מ-GitHub. כדאי לעשות את זה כשקטע הקוד של Terraform הוא חלק מפתרון מקצה לקצה.

  3. בודקים את הפרמטרים לדוגמה ומשנים אותם בהתאם לסביבה שלכם.
  4. שומרים את השינויים.
  5. מפעילים את Terraform. צריך לעשות זאת רק פעם אחת לכל ספרייה.
    terraform init

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

    terraform init -upgrade

החלה של השינויים

  1. בודקים את ההגדרות ומוודאים שהמשאבים שמערכת Terraform תיצור או תעדכן תואמים לציפיות שלכם:
    terraform plan

    מתקנים את ההגדרות לפי הצורך.

  2. מריצים את הפקודה הבאה ומזינים yes בהודעה שמופיעה, כדי להחיל את הגדרות Terraform:
    terraform apply

    ממתינים עד שב-Terraform תוצג ההודעה "Apply complete!‎".

  3. פותחים את Cloud de Confiance הפרויקט כדי לראות את התוצאות. במסוף Cloud de Confiance , נכנסים למשאבים בממשק המשתמש כדי לוודא שהם נוצרו או עודכנו ב-Terraform.

המדדים צפויים להיות זמינים בדוח 'תובנות לגבי שאילתות' תוך דקות ספורות מסיום השאילתה. מעיינים במדיניות בנושא שמירת נתונים ב-Cloud Monitoring.

העקבות של תובנות לגבי שאילתות מאוחסנות ב-Cloud Trace. מעיינים במדיניות בנושא שמירת נתונים ב-Cloud Trace.

הצגת מרכז הבקרה Query insights

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

כדי לפתוח את מרכז הבקרה Query insights:

  1. כדי לפתוח את הדף סקירה כללית של מכונה, לוחצים על שם המכונה.
  2. בתפריט הניווט של Cloud SQL, לוחצים על Query insights או על Go to Query insights for more in-depth info on queries and performance בדף Instance overview.
  3. מרכז הבקרה Query insights ייפתח. בהתאם למהדורה שבה אתם משתמשים – Query Insights למהדורת Cloud SQL Enterprise או Query Insights למהדורת Cloud SQL Enterprise Plus – בלוח הבקרה של Query Insights מוצג המידע הבא על המופע:

מהדורת Cloud SQL Enterprise Plus

כאן מוצג מרכז הבקרה של Query Insights במהדורת Enterprise Plus, עם תפריטים לסינון לפי מסד נתונים, משתמש וכתובת לקוח.
          אפשר גם לסנן לפי טווח זמן של שעה אחת, 6 שעות, יום אחד, 30 ימים או לבחור טווח זמן בהתאמה אישית. בתרשים הזה מוצג עומס מסד הנתונים לפי זמן ביצוע באלפיות השנייה לכל השאילתות במהלך תקופה של שעה אחת.
  • All queries: עומס מסד הנתונים של כל השאילתות בטווח הזמן שנבחר. כל שאילתה מקבלת קידוד צבעים משלה. כדי לראות נקודה בזמן של שאילתה ספציפית, מציבים את הסמן מעל התרשים של השאילתה.
  • מסד נתונים: סינון עומס השאילתות במסד נתונים ספציפי או בכל מסדי הנתונים.
  • משתמש: מסנן את עומס השאילתות מחשבון משתמש ספציפי.
  • כתובת לקוח: סינון עומס שאילתות מכתובת IP ספציפית.
  • טווח זמן: מסנן את עומס השאילתות לפי טווחי זמן, כמו שעה, 6 שעות, יום, 7 ימים, 30 ימים או טווח מותאם אישית.
  • סוגים של אירועי המתנה: מסננים את טעינת השאילתה לפי סוגים של אירועי המתנה של CPU ונעילה.
  • שאילתות, סוגי אירועים של המתנה, מסדי נתונים, משתמשים, תגים וכתובות של לקוחות: אפשר למיין לפי המאפיינים העיקריים שתורמים הכי הרבה לעומס על מסד הנתונים בתרשים. איך מסננים את טעינת מסד הנתונים

מהדורת Cloud SQL Enterprise

מוצג מרכז הבקרה Query insights עם תפריטים נפתחים למסדי נתונים, משתמשים וכתובות. משמאל לתפריטים הנפתחים, יש מסנן להגדרת טווח זמן. בנוסף,
         מוצג תרשים של עומס מסד הנתונים בשאילתות המובילות. בחלק התחתון של הגרף יש תיבות בחירה לקיבולת המעבד, למעבד ולהמתנה של המעבד, להמתנה של קלט/פלט ולהמתנה של נעילה, וגם כרטיסייה לכל אחת מהאפשרויות 'שאילתות' ו'תגים'.
  • מסד נתונים: סינון עומס השאילתות במסד נתונים ספציפי או בכל מסדי הנתונים.
  • משתמש: מסנן את עומס השאילתות מחשבון משתמש ספציפי.
  • כתובת לקוח: סינון עומס שאילתות מכתובת 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 כדי לתזמן את תהליך השרת שמריץ את השאילתה, בזמן שתהליכים אחרים משתמשים במעבד.
  • המתנה לקלט/פלט: היחס בין הזמן שלוקח לשאילתות שממתינות לקלט/פלט לבין הזמן שחלף בפועל. ההגדרה 'המתנה לקלט/פלט' כוללת את ההגדרה 'המתנה לקלט/פלט של קריאה' ואת ההגדרה 'המתנה לקלט/פלט של כתיבה'. אם רוצים לראות פירוט של מידע לגבי זמני המתנה של קלט/פלט, אפשר לראות אותו ב-Cloud Monitoring. מידע נוסף מופיע במאמר מדדים של Cloud SQL. מידע נוסף זמין בטבלת האירועים של PostgreSQL.
  • המתנה לנעילה: היחס בין הזמן שלוקח לשאילתות להמתין לנעילות לבין הזמן שחלף בפועל. היא כוללת את 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 תיאור
שאילתות בטבלה מוצגות השאילתות המנורמלות המובילות לפי זמן הביצוע הכולל. לגבי כל שאילתה, הנתונים שמוצגים בעמודות מפורטים באופן הבא:
  • זמן ביצוע ממוצע (אלפיות שנייה): הזמן הממוצע שנדרש לביצוע השאילתה.
    • יכול להיות שהרשימה של הערכים בעמודה Avg execution time (ms) לא מלאה. לדוגמה, אם שאילתה שהופעלה על ידי משתמש ספציפי גורמת לעומס גבוה במסד הנתונים, וההתנהגות הזו לא מייצגת את ההתנהגות הממוצעת של המשתמש, יכול להיות שהרשומה של השאילתה של המשתמש לא תיכלל.
  • זמן הביצוע הכולל (באלפיות השנייה): זמן הביצוע הכולל של השאילתה הספציפית.
  • מספר ממוצע של שורות שהוחזרו: המספר הממוצע של שורות שאוחזרו עבור השאילתה.
  • מספר הפעמים שהשאילתה הופעלה: מספר הפעמים שהאפליקציה הפעילה את השאילתה.
  • %load by SELECTED_DIMENSION: תרשים הקו של האחוזים מציג את האופן שבו המאפיין שנבחר מתפלג בשאילתה הספציפית.
סוגים של אירועי המתנה בטבלה מוצגת רשימה של סוגי אירועי ההמתנה המובילים שהתרחשו במהלך תקופת הזמן שנבחרה. הטבלה הזו זמינה רק ב-Query Insights במהדורת Cloud SQL Enterprise Plus.
  • זמן ממוצע בהמתנה (אלפיות השנייה): הזמן הממוצע שחלף בין שליחת השאילתות לבין קבלת התשובה, לפי סוג אירוע ההמתנה הספציפי.
  • הזמן הכולל שהוקדש להמתנה (אלפיות השנייה): זמן הביצוע הכולל שהוקדש לשאילתות באירוע ההמתנה הספציפי.
  • מספר הפעמים שסוג מסוים של אירוע המתנה התרחש בתקופת הזמן שנבחרה.
  • %load by SELECTED_DIMENSION: תרשים הקו שמציג את האחוזים מראה את הפיזור של המאפיין שנבחר לתרשים העומס של מסד הנתונים עבור סוג מסוים של אירוע המתנה.
אירועי המתנה בטבלה מוצגת רשימה של אירועי ההמתנה המובילים שהתרחשו במהלך תקופת הזמן שנבחרה. הטבלה הזו זמינה רק ב-Query Insights במהדורת Cloud SQL Enterprise Plus.
  • זמן ההמתנה הממוצע (אלפיות השנייה): הזמן הממוצע שהשאילתות המתינו לאירוע ההמתנה הספציפי.
  • הזמן הכולל שהוקדש להמתנה (אלפיות השנייה): משך הזמן הכולל שהשאילתות הוקדש לאירוע ההמתנה הספציפי.
  • מספר אירועי המתנה: מספר הפעמים שסוג מסוים של אירוע המתנה התרחש בתקופת הזמן שנבחרה.
  • %load by SELECTED_DIMENSION: תרשים הקו של אחוז העומס מתאר את האופן שבו המאפיין שנבחר לתרשים עומס מסד הנתונים מתפלג עבור אירוע ההמתנה הספציפי.
מסדי נתונים בטבלה מוצגת רשימה של מסדי הנתונים המובילים שתרמו לטעינה במהלך התקופה שנבחרה בכל השאילתות שהופעלו.
  • זמן ממוצע שהושקע במסד הנתונים (אלפיות שנייה): הזמן הממוצע שהשאילתות השקיעו במסד הנתונים הספציפי.
  • הזמן הכולל שהוקדש למסד הנתונים (אלפיות השנייה): הזמן הכולל של ביצוע השאילתות במסד הנתונים הספציפי.
  • %load by SELECTED_DIMENSION: תרשים הקו שמציג את האחוזים מתאר את האופן שבו המאפיין שנבחר לתרשים טעינת מסד הנתונים מתפלג במסד הנתונים הספציפי.
משתמשים בטבלה מוצגת רשימה של המשתמשים המובילים בטווח הזמן שנבחר בכל השאילתות שהופעלו.
  • משך הזמן הממוצע של השהייה של המשתמש (אלפיות השנייה): משך הזמן הממוצע של השהייה של השאילתות אצל המשתמש הספציפי.
  • הזמן הכולל שהמשתמש השקיע (באלפיות השנייה): הזמן הכולל של הביצוע שהשאילתות השקיעו אצל המשתמש הספציפי.
  • %load by SELECTED_DIMENSION: תרשים הקו של האחוזים מציג את האופן שבו המאפיין שנבחר לתרשים טעינת מסד הנתונים מתפלג בין המשתמשים הספציפיים.
תגים מידע על תגים זמין במאמר בנושא סינון לפי תגי שאילתה.
כתובות של לקוחות בטבלה מוצגת רשימה של המשתמשים המובילים בטווח הזמן שנבחר בכל השאילתות שהופעלו.
  • הזמן הכולל שהוקדש לכתובת הלקוח (אלפיות השנייה): הזמן הכולל של הביצוע שהוקדש לשאילתות של לקוח ספציפי.
  • %load by SELECTED_DIMENSION: תרשים הקו שמציג את האחוזים מראה איך המאפיין שנבחר לתרשים הטעינה של מסד הנתונים מתפלג בין הלקוחות הספציפיים.

סינון לפי שאילתות

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

מהדורת Cloud SQL Enterprise Plus

כדי למיין את הטבלה, בוחרים כותרת של עמודה.

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

מהדורת Cloud SQL Enterprise

כדי למיין את הטבלה, בוחרים כותרת עמודה או מאפיין מתוך Filter queries (סינון שאילתות).

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

הטבלה מציגה את המאפיינים הבאים:

  • Query: מחרוזת השאילתה המנורמלת. כברירת מחדל, בתובנות לגבי שאילתות מוצגים רק 1,024 תווים במחרוזת השאילתה. שאילתות עם התווית UTILITY COMMAND כוללות בדרך כלל פקודות BEGIN,‏ COMMIT ו-EXPLAIN או פקודות wrapper.
  • Database: מסד הנתונים שעליו הופעלה השאילתה.
  • המלצות: ההמלצות המוצעות, כמו יצירת אינדקסים, לשיפור הביצועים של השאילתות.
  • טעינה לפי זמן כולל/טעינה לפי CPU/טעינה לפי IO wait/טעינה לפי lock wait: האפשרויות שבהן אפשר לסנן שאילתות ספציפיות כדי למצוא את העומס הגדול ביותר.
  • % load by Queries: The percentage load by individual query.
  • ניתוח זמן האחזור: אם הפעלתם פתרון בעיות בעזרת AI (גרסת Preview) עבור המופע הזה, תוכלו ללחוץ על הקישור הזה כדי לפתור בעיות שקשורות לשאילתות איטיות.
  • זמן ביצוע ממוצע (אלפיות שנייה): הזמן הממוצע שנדרש להרצת השאילתה.
  • מספר הפעמים שהתבצעה קריאה: מספר הפעמים שהאפליקציה קראה את השאילתה.
  • מספר ממוצע של שורות שהוחזרו: המספר הממוצע של שורות שהוחזרו עבור השאילתה.

התכונה 'תובנות לגבי שאילתות' מאחסנת ומציגה רק שאילתות שעברו נורמליזציה.

כברירת מחדל, התכונה 'תובנות לגבי שאילתות' לא אוספת כתובות IP או פרטי תגים. אפשר להפעיל את התובנות לגבי שאילתות כדי לאסוף את המידע הזה, ואם צריך, להשבית את האיסוף.

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

ב-PostgreSQL 9.6 ו-10, התובנות לגבי שאילתות מציגות שאילתות מנורמלות, כלומר, ? מחליף את הערך הקבוע המילולי. בדוגמה הבאה, הקבוע name מוסר ומוחלף ב-?.

  UPDATE
    "demo_customer"
  SET
    "customer_id" = ?::uuid,
    "name" = ?,
    "address" = ?,
    "rating" = ?,
    "balance" = ?,
    "current_city" = ?,
    "current_location" = ?
  WHERE
    "demo_customer"."id" = ?
  

ב-PostgreSQL בגרסה 11 ואילך, משתנים כמו $1,‏ $2 ודומים מחליפים ערכים קבועים מילוליים.

  UPDATE
    "demo_customer"
  SET
    "customer_id" = $1::uuid,
    "name" = $2,
    "address" = $3,
    "rating" = $4,
    "balance" = $5,
    "current_city" = $6,
    "current_location" = $7
  WHERE
    "demo_customer"."id" = $8
  

סינון לפי תגי שאילתות

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

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

אפשר לתייג שאילתות לפי הלוגיקה העסקית, למשל תגי תשלום, מלאי, ניתוח עסקי או משלוח. אחר כך תוכלו למצוא את עומס השאילתות שנוצר על ידי הלוגיקה העסקית השונה. לדוגמה, יכול להיות שתבחינו באירועים לא צפויים, כמו עליות חדות בתג של ניתוח עסקי בשעה 13:00 או גידול לא צפוי בשירות תשלומים במהלך השבוע הקודם.

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

במרכז הבקרה של תובנות לגבי שאילתות, לוחצים על Tags (תגים) כדי לראות את טבלת התגים. הטבלה ממיינת את התגים לפי הטעינה הכוללת שלהם לפי הזמן הכולל.

הצגת מרכז הבקרה של תובנות לגבי שאילתות, עם נתוני הטעינה של התגים ורשימת התגים.

כדי למיין את הטבלה, בוחרים מאפיין מתוך Filter tags או לוחצים על כותרת של עמודה. הטבלה מציגה את המאפיינים הבאים:

  • Action, Controller, Framework, Route, Application, DB driver: כל נכס שהוספתם לשאילתות מופיע כעמודה. אם רוצים לסנן לפי תגים, צריך להוסיף לפחות אחד מהמאפיינים האלה.
  • טעינה לפי זמן כולל/טעינה לפי CPU/טעינה לפי IO wait/טעינה לפי lock wait: אפשרויות לסינון שאילתות ספציפיות כדי למצוא את הטעינה הגדולה ביותר לכל אפשרות.
  • זמן ביצוע ממוצע (אלפיות שנייה): הזמן הממוצע להרצת השאילתה.
  • מספר השורות הממוצע שהוחזר: המספר הממוצע של השורות שהוחזרו עבור השאילתה.
  • מספר הפעמים שהתבצעה קריאה: מספר הפעמים שהאפליקציה קראה את השאילתה.
  • Database: מסד הנתונים שהשאילתה הופעלה מולו.

הצגת פרטי שאילתה לגבי שאילתה או תג ספציפיים

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

  1. כדי למיין את הרשימה בסדר יורד, לוחצים על הכותרת טעינה לפי זמן כולל.
  2. לוחצים על השאילתה או על התג בחלק העליון של הרשימה. העומס עליה גבוה יותר והיא לוקחת יותר זמן מהאחרות.

הדף Query details נפתח ומוצגים בו הפרטים של השאילתה או התג שנבחרו.

בדיקת עומס של שאילתה ספציפית

דף פרטי השאילתה עבור שאילתה שנבחרה מופיע כך:

התרשימים מציגים את העומס על מסד הנתונים ואת זמן האחזור של שאילתה ספציפית.

בתרשים Database load — specific query מוצג מדד של העבודה (בשניות CPU) שהשאילתה הנורמלית ביצעה בשאילתה שנבחרה לאורך זמן. כדי לחשב את העומס, המערכת משתמשת בכמות הזמן שלוקח לשאילתות המנורמלות שהושלמו בגבול הדקה עד לשעה שמוצגת בשעון. בחלק העליון של הטבלה מוצגים 1,024 התווים הראשונים של השאילתה הנורמלית, אחרי הסרת מילים מילוליות לצורך צבירה ומטעמי פרטים אישיים מזהים.

תרשים עומס מסד הנתונים עם עומס של שאילתה ספציפית, עם מסננים שנבחרו לקיבולת המעבד, למעבד ולהמתנה של המעבד, להמתנה של קלט/פלט ולהמתנה של נעילה.

בדומה לתרשים של סך כל השאילתות, אפשר לסנן את העומס של שאילתה ספציפית לפי מסד נתונים, משתמש וכתובת לקוח. עומס השאילתות מחולק ל-CPU capacity,‏ CPU and CPU wait,‏ IO wait ו-Lock wait.

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

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

הגרפים של עומס מסד הנתונים והחביון מוצגים בדף של תג ספציפי.

בתרשים Database load — specific tags (עומס על מסד הנתונים – תגים ספציפיים) מוצג מדד של העבודה (בשניות CPU) שבוצעה במסד הנתונים שנבחר על ידי שאילתות שתואמות לתגים שנבחרו, לאורך זמן. בדומה לתרשים של סך השאילתות, אפשר לסנן את העומס של תג מסוים לפי מסד נתונים, משתמש וכתובת לקוח.

בדיקת פעולות בתוכנית שאילתה שנדגמה

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

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

גרף של תוכניות שאילתה לדוגמה, עם הזמן שבו הן הופעלו בתחתית הגרף (ציר x) ומספר השניות שבהן הן הופעלו מימין (ציר y).

כברירת מחדל, בחלונית בצד שמאל מוצגים הפרטים של תוכנית השאילתה לדוגמה שלוקחת הכי הרבה זמן, כפי שמוצג בתרשים Query plan samples. כדי לראות את הפרטים של תוכנית שאילתה לדוגמה אחרת, לוחצים על העיגול הרלוונטי בתרשים. בפרטים המורחבים מוצג מודל של כל הפעולות בתוכנית השאילתה.

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

בתוכנית השאילתה מוצגים זמן האחזור והעלות של כל פעולה שמופעלת בשאילתה.

כדי לצמצם את הבעיה, כדאי לעיין בשאלות הבאות:

  1. מהי צריכת המשאבים?
  2. איך זה קשור לשאילתות אחרות?
  3. האם הרגלי הצפייה משתנים לאורך זמן?

בדיקת מעקב שנוצר על ידי שאילתה לדוגמה

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

כדי לראות את המעקב בהקשר:

  1. במסך Sample Query (שאילתה לדוגמה), לוחצים על הכרטיסייה End-to-end Trace (מעקב מקצה לקצה). בכרטיסייה הזו מוצג תרשים גאנט שמפרט את טווחי הזמן, שהם רשומות של פעולות ספציפיות, של העקבות שנוצרו על ידי השאילתה.
  2. כדי לראות פרטים נוספים על כל יחידה לוגית למעקב, כמו מאפיינים ומטא-נתונים, בוחרים את היחידה הלוגית למעקב.

אפשר לראות את המעקב גם בדף 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
  • Django
  • psycopg2
  • Sqlalchemy
  • בקבוקון לשתייה חריפה
Java
  • מצב תנומה
  • Spring
Ruby
  • Rails
Node.js
  • Knex.js
  • Sequelize.js
  • Express.js
PHP
  • Laravel
המשך
  • http-tags
  • gorilla/mux
  • database/sql

למידע נוסף על sqlcommenter ועל אופן השימוש בו במסגרת ORM, אפשר לעיין במאמרי העזרה בנושא sqlcommenter.

שימוש ב-sqlcommenter להוספת תגים

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

  • action=''
  • controller=''
  • framework=''
  • route=''
  • application=''
  • db driver=''

התכונה 'תובנות לגבי שאילתות' משמיטה את כל המפתחות האחרים.

שאילתות פעילות שנחסמו

אם שאילתה פעילה ספציפית נחסמת או פועלת הרבה יותר זמן מהצפוי, היא עלולה לחסום שאילתות תלויות אחרות.

ב-Cloud SQL יש אפשרות להפסיק שאילתות פעילות ספציפיות שפועלות במשך זמן רב או חסומות.

מידע נוסף זמין במאמר בנושא שאילתות פעילות חסומות.

השבתת תובנות לגבי שאילתות

המסוף

כדי להשבית את התכונה 'תובנות לגבי שאילתות' במופע Cloud SQL באמצעות Cloud de Confiance המסוף:

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

    כניסה לדף Cloud SQL Instances

  2. כדי לפתוח את הדף סקירה כללית של מכונה, לוחצים על שם המכונה.
  3. בכרטיס Configuration (הגדרות), לוחצים על Edit configuration (עריכת ההגדרות).
  4. בקטע אפשרויות הגדרה, מרחיבים את תובנות לגבי שאילתות.
  5. מבטלים את הסימון של תיבת הסימון הפעלת תובנות לגבי שאילתות.
  6. לוחצים על 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 עם הערך false בשדה queryInsightsEnabled, כמו בדוגמה הבאה.

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • 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"
}

השבתת התכונה Query Insights במהדורת Cloud SQL Enterprise Plus

כדי להשבית את Query Insights במהדורת Cloud SQL Enterprise Plus:

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

    כניסה לדף Cloud SQL Instances

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

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