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

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

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

אתם יכולים להיעזר ב-Gemini Cloud Assist כדי לעקוב אחרי המשאבים של AlloyDB ולפתור בעיות שקשורות אליהם. למידע נוסף, קראו את המאמר מעקב ופתרון בעיות בעזרת Gemini.

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

כדי לגשת למרכז הבקרה של תובנות לגבי שאילתות, צריך להפעיל את הגישה ל-AlloyDB ל-PostgreSQL בפרויקט ב- Google Cloud .

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

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

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

כדי לקבל את ההרשאות האלה, צריך לבקש מהאדמין להקצות לכם אחד מהתפקידים הבאים:

  • צופה בסיסי (roles/viewer)
  • צפייה ב-Database Insights (roles/databaseinsights.viewer)

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

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

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

המסוף

  1. נכנסים לדף Clusters במסוף Google Cloud .

    כניסה לדף Clusters

  2. ברשימת האשכולות והמכונות, לוחצים על מכונה.

  3. לוחצים על Query insights.

  4. לוחצים על הפעלה או על עריכת ההגדרות.

  5. בכרטיסייה Edit query insights settings, מסמנים את התיבה Enable advanced query insights features for AlloyDB.

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

    • מסמנים את התיבות Wait event analysis ו-Active query analysis.
    • מגדילה את אורך השאילתה מ-4,500B ל-100,000B.
  6. שומרים את השינויים. המכונה של AlloyDB ל-PostgreSQL תופעל מחדש.

gcloud

gcloud alloydb instances update INSTANCE \
--cluster=CLUSTER \
--project=PROJECT \
--region=REGION \
--observability-config-enabled

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

  • ‫INSTANCE: המזהה של המכונה שרוצים לעדכן.
  • ‫CLUSTER: המזהה של אשכול המכונה.
  • ‫PROJECT: מזהה הפרויקט של האשכול.
  • ‫REGION: האזור של האשכול, לדוגמה us-central1.

הדגל --observability-config-enabled מאפשר לאסוף ולנתח נתונים במכונה של AlloyDB כדי לעקוב אחרי הביצועים והתקינות שלה. כדי להשבית את התובנות המתקדמות לגבי שאילתות, משתמשים ב---no-observability-config-enabled.

Terraform

כדי להפעיל את התובנות המתקדמות לגבי שאילתות במכונה של AlloyDB באמצעות Terraform, מגדירים את השדה enabled לערך true בבלוק observability_config.

הנה דוגמה:

  observability_config {
    enabled = true
  ...
  }
  

במאמר פקודות בסיסיות ב-Terraform מוסבר איך מוסיפים או מסירים הגדרות אישיות ב-Terraform.

REST v1

בדוגמה הזו מפעילים את התכונה "תובנות מתקדמות לגבי שאילתות" במכונה של AlloyDB. לרשימה המלאה של הפרמטרים של הקריאה הזו, ראו Method: projects.locations.clusters.instances.patch. למידע על הגדרות מתקדמות של תובנות לגבי שאילתות, ראו עריכת הגדרות מתקדמות של תובנות לגבי שאילתות.

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

  • ‫CLUSTER_ID: המזהה של האשכול שאתם יוצרים. הוא חייב להתחיל באות קטנה באנגלית, ויכול לכלול אותיות קטנות, מספרים ומקפים.
  • ‫PROJECT_ID: מזהה הפרויקט שבו רוצים למקם את האשכול.
  • ‫LOCATION_ID: המזהה של אזור האשכול.
  • ‫INSTANCE_ID: השם של המכונה הראשית שרוצים ליצור.

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

PATCH https://alloydb.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/clusters/CLUSTER_ID/instances/INSTANCE_ID?updateMask=observabilityConfig.enabled

פרמטר השאילתה updateMask=observabilityConfig.enabled מורה ל-API לעדכן את השדה enabled בתוך הבלוק observabilityConfig.

גוף בקשת ה-JSON נראה כך:

{
 "observabilityConfig": {
   "enabled" : true
 }
}

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

עריכת ההגדרות של התכונות המתקדמות

כדי לערוך את ההגדרה של תובנות מתקדמות לגבי שאילתות במכונה של AlloyDB:

המסוף

  1. נכנסים לדף Clusters במסוף Google Cloud .

    כניסה לדף Clusters

  2. ברשימת האשכולות והמכונות, לוחצים על מכונה.

  3. לוחצים על Query insights.

  4. לוחצים על עריכת ההגדרות ומשנים את ההגדרות הבאות:

    • ניתוח אירועי המתנה ניתוח אירועי המתנה יכול לעזור לכם לזהות ולפתור בעיות בביצועים במסד הנתונים. אירוע המתנה הוא רכיב שגורם לעיכוב בעיבוד של פעולה שקשורה לשאילתה.
    • ניתוח שאילתות פעילות מעקב אחרי שאילתות שפועלות באופן פעיל.
    • שמירת הערות לשאילתות: אפשר להבין את ההקשר של השאילתה על ידי הצגת ההערות שמשויכות לכל שאילתה שאתם חוקרים, כחלק מאורך השאילתה. לא צריך זיכרון נוסף. אם ההערות מכילות מידע רגיש, חשוב לשים לב לגישת המשתמשים.
    • הפעלת Index advisor הצגת המלצות ליצירת אינדקס בדף תובנות של שאילתות באשכול.
    • בשדה Select run frequency, אתם יכולים להגדיר את תדירות העדכון של ההמלצות.
    • אחסון כתובות ה-IP של הלקוח: הפעילו את האפשרות הזו כדי לעקוב אחרי כתובות ה-IP של הלקוח ולנתח את הנתונים האלה.
    • תגי אפליקציות בחנות: הפעילו את האפשרות הזו כדי לראות אילו ממשקי API ונתיבי MVC שולחים בקשות, ולקבץ את הנתונים האלה כדי להריץ עליהם מדדים.
    • דגימה של תוכניות לביצוע שאילתות: תוכניות לביצוע שאילתות ממחישות את הפעולות שמשמשות להשלמת דגימה של שאילתה. תדירות הדגימה קובעת כמה דגימות של שאילתות אפשר לתעד בדקה בכל מסדי הנתונים. קצבי דגימה גבוהים יותר דורשים יותר זיכרון.
    • בשדה Query lengths אפשר לשנות את מגבלת ברירת המחדל של אורך השאילתה, מ-256 בייטים עד 100KB. שאילתות ארוכות יותר דורשות יותר זיכרון. כדי לשנות את אורך השאילתה, צריך להפעיל מחדש את המכונה.
  5. שומרים את השינויים.

gcloud

gcloud alloydb instances update INSTANCE \
--cluster=CLUSTER \
--project=PROJECT \
--region=REGION \
--observability-config-enabled \
--observability-config-preserve-comments \
--observability-config-track-wait-events \
--observability-config-max-query-string-length=QUERY_LENGTH \
--observability-config-record-application-tags \
--observability-config-query-plans-per-minute=QUERY_PLANS \
--observability-config-track-active-queries

כדי להגדיר גם מעקב אחרי כתובות ה-IP של הלקוחות או חוויות שימוש מסייעות (גרסת טרום-השקה (Preview)), צריך לכלול את הדגלים --observability-config-track-client-address ו---observability-config-assistive-experiences-enabled בפקודה gcloud beta alloydb instances update:

gcloud beta alloydb instances update INSTANCE \
--cluster=CLUSTER \
--project=PROJECT \
--region=REGION \
--observability-config-enabled \
--observability-config-preserve-comments \
--observability-config-track-wait-events \
--observability-config-max-query-string-length=QUERY_LENGTH \
--observability-config-record-application-tags \
--observability-config-query-plans-per-minute=QUERY_PLANS \
--observability-config-track-active-queries \
--observability-config-track-client-address \
--observability-config-assistive-experiences-enabled

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

  • ‫INSTANCE: המזהה של המכונה שרוצים לעדכן.
  • ‫CLUSTER: המזהה של אשכול המכונה.
  • ‫PROJECT: מזהה הפרויקט של האשכול.
  • ‫REGION: האזור של האשכול, לדוגמה us-central1.
  • ‫QUERY_LENGTH: אורך השאילתה, שנע בין 1,024 ל-100,000 בייטים. אורך ברירת המחדל של שאילתה הוא 10,240 בייטים. שאילתות ארוכות יותר שימושיות יותר לשאילתות ניתוח, אבל הן גם דורשות יותר זיכרון. כדי לשנות את אורך השאילתה, צריך להפעיל מחדש את המכונה. אפשר להוסיף תגים לשאילתות שחורגות ממגבלת האורך.
  • ‫QUERY_PLANS: מספר התוכניות לביצוע שאילתות שצריך להגדיר בכל דקה. כברירת מחדל, בכל דקה נלכדות עד 20 דגימות של תוכניות לביצוע שאילתות שהופעלו בכל מסדי הנתונים במכונה. צריך לשנות את הערך הזה למספר בין 1 ל-200. כדי להשבית את הדגימה, מזינים 0. הגדלת תדירות הדגימה עשויה לספק יותר נקודות על הגרף, אבל היא עלולה להשפיע לרעה על הביצועים.

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

  • ‫--observability-config-enabled: מאפשר לאסוף ולנתח נתונים במכונה של AlloyDB כדי לעקוב אחרי הביצועים והתקינות שלה. כדי להשבית את התובנות המתקדמות לגבי שאילתות, משתמשים ב---no-observability-config-enabled.
  • ‫--observability-config-track-active-queries: מאפשר מעקב אחרי שאילתות פעילות. כדי להשבית את התכונה, משתמשים ב---no-observability-config-track-active-queries.
  • ‫--observability-config-track-client-address (גרסת טרום-השקה (Preview)): מאפשרת מעקב אחרי כתובות של לקוחות. מגדירים באמצעות הפקודה gcloud beta alloydb instances update. כדי להשבית את המעקב אחרי כתובות של לקוחות, משתמשים ב---no-observability-config-track-client-address.
  • ‫--observability-config-assistive-experiences-enabled (גרסת טרום-השקה (Preview)): מאפשרת לחוויות מסייעות לאסוף נתוני טלמטריה משופרים למטרות מעקב ופתרון בעיות. מגדירים באמצעות הפקודה gcloud beta alloydb instances update. כדי להשבית את חוויית השימוש בכלי העזר, משתמשים ב---no-observability-config-assistive-experiences-enabled.
  • ‫--observability-config-record-application-tags: מאחסן תגי אפליקציות שעוזרים לכם לקבוע את ממשקי ה-API ואת נתיבי ה-MVC (מודל-תצוגה-בקרה) ששולחים בקשות ומקבצים נתונים כדי להריץ עליהם מדדים. כדי להשתמש באפשרות הזו, צריך להוסיף הערות לשאילתות עם קבוצה ספציפית של תגים. אם אתם לא רוצים לאחסן תגי אפליקציות, השתמשו ב---no-observability-config-record-application-tags.
  • ‫--observability-config-preserve-comments: שמירת הערות במחרוזות של שאילתות שתועדו על ידי תובנות לגבי שאילתות. אם אתם לא רוצים לשמור את ההערות, השתמשו ב---no-observability-config-preserve-comments.
  • ‫--observability-config-track-wait-events: מאפשר מעקב אחרי אירועי המתנה במהלך הרצת השאילתה. אם אתם לא רוצים לעקוב אחרי אירועי המתנה, השתמשו ב---no-observability-config-track-wait-events.
  • ‫--observability-config-query-plans-per-minute=QUERY_PLANS: מספר התוכניות לביצוע שאילתות שצריך לדגום בכל דקה. כברירת מחדל, נלכדות עד 20 דגימות של תוכניות לביצוע שאילתות בכל דקה בכל מסדי הנתונים במכונה. צריך לשנות את הערך הזה למספר בין 1 ל-200. כדי להשבית את הדגימה, מזינים 0. הגדלת תדירות הדגימה עשויה לספק יותר נקודות על הגרף, אבל עלולה להשפיע לרעה על הביצועים.
  • --observability-config-max-query-string-length=QUERY_LENGTH: אורך מחרוזת השאילתה בבייטים לאחסון. ערך ברירת המחדל הוא 10,240 בייטים. אפשר להזין כל ערך מ-1,024 עד 100,000. כדי לשנות את אורך השאילתה, צריך להפעיל מחדש את המכונה.

Terraform

כדי להגדיר תובנות מתקדמות לגבי שאילתות במכונה של AlloyDB באמצעות Terraform, משתמשים במשאב google_alloydb_instance.

לדוגמה:

  observability_config {
    enabled = ENABLED_VALUE
    preserve_comments = PRESERVE_COMMENTS_VALUE
    track_wait_events = TRACK_WAIT_EVENTS_VALUE
    max_query_string_length = MAX_QUERY_STRING_LENGTH_VALUE
    record_application_tags = RECORD_APPLICATION_TAGS_VALUE
    query_plans_per_minute = QUERY_PLANS_PER_MINUTE_VALUE
    track_active_queries = TRACK_ACTIVE_QUERIES_VALUE
    track_client_address = TRACK_CLIENT_ADDRESS_VALUE
    assistive_experiences_enabled = ASSISTIVE_EXPERIENCES_ENABLED_VALUE
  }
  

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

  • ENABLED_VALUE: סטטוס תכונת הניטור של מכונה. מגדירים את הערך true כשעורכים את ההגדרות ומציינים סימונים אחרים לפי הצורך.
  • ‫PRESERVE_COMMENTS_VALUE: שמירת ההערות במחרוזת השאילתה. ערך ברירת המחדל הוא false.
  • ‫TRACK_WAIT_EVENTS_VALUE: תיעוד אירועי המתנה במהלך הרצת שאילתה במכונה. ערך ברירת המחדל הוא true.
  • ‫MAX_QUERY_STRING_LENGTH_VALUE: אורך מחרוזת השאילתה. ערך ברירת המחדל הוא 10240. כל מספר שלם בין 1,024 ל-100,000 הוא חוקי.
  • ‫RECORD_APPLICATION_TAGS_VALUE: תיעוד תגי אפליקציה של מכונה. ערך ברירת המחדל הוא true.
  • ‫QUERY_PLANS_PER_MINUTE_VALUE: מספר תוכניות הביצוע של השאילתות שתועדו על ידי התובנות לדקה, לכל השאילתות ביחד. ערך ברירת המחדל הוא 20. כל מספר שלם בין 0 ל-200 הוא תקין.
  • ‫TRACK_ACTIVE_QUERIES_VALUE: מעקב אחרי שאילתות שפועלות באופן פעיל. ערך ברירת המחדל הוא false.
  • ‫TRACK_CLIENT_ADDRESS_VALUE: תיעוד כתובות ה-IP של הלקוחות במכונה. ערך ברירת המחדל הוא false.
  • ‫ASSISTIVE_EXPERIENCES_ENABLED_VALUE: הפעלת חוויות שימוש מסייעות. ערך ברירת המחדל הוא false.

    במאמר פקודות בסיסיות ב-Terraform מוסבר איך מוסיפים או מסירים הגדרות אישיות ב-Terraform.

REST v1

בדוגמה הזו מגדירים את ההגדרות המתקדמות של תובנות לגבי שאילתות במכונה של AlloyDB. רשימה מלאה של הפרמטרים לקריאה הזו מופיעה במאמר Method: projects.locations.clusters.instances.patch.

כדי להגדיר את ההגדרות המתקדמות של תובנות לגבי שאילתות, מגדירים את השדה enabled לערך true ומשנים שדות אופציונליים אחרים לפי הצורך. רשימה מלאה של השדות לקריאה הזו מופיעה במאמר ObservabilityInstanceConfig.

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

  • ‫CLUSTER_ID: המזהה של האשכול שאתם יוצרים. הוא חייב להתחיל באות קטנה באנגלית, ויכול לכלול אותיות קטנות, מספרים ומקפים.
  • ‫PROJECT_ID: מזהה הפרויקט שבו רוצים למקם את האשכול.
  • ‫LOCATION_ID: המזהה של אזור האשכול.
  • ‫INSTANCE_ID: השם של המכונה הראשית שרוצים ליצור.

כדי לשנות את הגדרות המכונה, משתמשים בבקשת PATCH הבאה:

PATCH https://alloydb.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/clusters/CLUSTER_ID/instances/INSTANCE_ID?updateMask=observabilityConfig.enabled,observabilityConfig.preserveComments,observabilityConfig.trackWaitEvents,observabilityConfig.maxQueryStringLength,observabilityConfig.recordApplicationTags,observabilityConfig.queryPlansPerMinute,observabilityConfig.trackActiveQueries

גוף בקשת ה-JSON שמגדיר את כל השדות של תובנות מתקדמות לגבי שאילתות נראה כך:

{
 "observabilityConfig": {
   "enabled": true,
   "preserveComments": true,
   "trackWaitEvents": true,
   "maxQueryStringLength": 5000,
   "recordApplicationTags": true,
   "queryPlansPerMinute": 20,
   "trackActiveQueries": true
 }
}

כדי להגדיר גם את השדות trackClientAddress או assistiveExperiencesEnabled (גרסת טרום-השקה (Preview)), משתמשים ב-method‏ v1beta projects.locations.clusters.instances.patch וכוללים את השדות האלה בגוף הבקשה של updateMask ו-ObservabilityInstanceConfig.

זיהוי ואבחון של בעיות בביצועי השאילתות

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

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

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

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

  • שאילתה
  • סוג אירוע ההמתנה
  • אירוע המתנה
  • מסד נתונים
  • משתמש

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

  1. נכנסים לדף Clusters במסוף Google Cloud .

    כניסה לדף Clusters

  2. ברשימת האשכולות והמכונות, לוחצים על מכונה.

  3. לוחצים על Query insights.

  4. בוחרים את מסד הנתונים ואת המשתמש.

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

  6. בתפריט הנפתח Database Load by execution time, בוחרים את המאפיין שרוצים לחקור. בהתאם למאפיין שבחרתם, בתרשים מוצגת התרומה של המאפיין הנבחר לעומס הכולל על מסד הנתונים. לדוגמה, אם בוחרים את המאפיין Wait events מהתפריט הנפתח של תרשים העומס על מסד הנתונים, בתרשים העומס על מסד הנתונים מוצג פירוט של כל אירועי ההמתנה שהתרחשו במהלך טווח התאריכים שנבחר, עבור מסד הנתונים והמשתמש שנבחרו.

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

הצגת הגורמים העיקריים לעומס על מסד הנתונים

באמצעות הטבלה Top dimensions by database load אפשר לראות את הגורמים העיקריים לעומס על מסד הנתונים בטווח התאריכים שנבחר, ואת המאפיין שנבחר בתרשים Database Load. בהתאם למאפיין שתבחרו בטבלה Top dimensions by database load, תוכלו למצוא את הערכים המובילים בחלון הזמן שנבחר.

  1. נכנסים לדף Clusters במסוף Google Cloud .

    כניסה לדף Clusters

  2. ברשימת האשכולות והמכונות, לוחצים על מכונה.

  3. לוחצים על Query insights.

  4. בוחרים את מסד הנתונים ואת המשתמש.

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

  6. בטבלה Top dimensions by database load, אפשר ללחוץ על כל אחד מהפריטים הבאים:

    מאפיין תיאור
    שאילתות בטבלה מוצגות השאילתות המנורמלות המובילות לפי זמן הביצוע הכולל. לכל שאילתה, הנתונים שמוצגים בעמודות מפורטים באופן הבא:
    • זמן ביצוע ממוצע (באלפיות השנייה). הזמן הממוצע לביצוע השאילתה.
    • זמן הביצוע הכולל (באלפיות השנייה). משך הזמן הכולל של הרצת השאילתה הספציפית.
    • שורות שהוחזרו. המספר הממוצע של שורות שנשלפו בשאילתה.
    • מספר השיחות. מספר הפעמים שהאפליקציה קראה לשאילתה.
    • ‫%load לפי מאפיין התרשים. בתרשים הגלולה מוצגת ההתפלגות של מאפיין התרשים בשאילתה הספציפית.
    סוגי אירועי המתנה בטבלה מוצגת רשימה של סוגי אירועי ההמתנה המובילים שהתרחשו בטווח התאריכים שנבחר.
    • הזמן הממוצע שהמשתמשים המתינו (באלפיות השנייה). הזמן הממוצע שהשאילתות היו בסוג הספציפי של אירוע ההמתנה.
    • הזמן הכולל של ההמתנה (באלפיות השנייה). משך הזמן הכולל של ביצוע השאילתות בסוג הספציפי של אירוע ההמתנה.
    • מספר אירועי ההמתנה לפי סוג. מספר הפעמים שסוג ספציפי של אירוע המתנה התרחש בטווח הזמן שנבחר.
    • ‫%load לפי מאפיין התרשים. בתרשים הגלולה מוצג איך המאפיין של התרשים שנבחר בתפריט הנפתח של תרשים עומס מסד הנתונים מתפלג לפי סוג אירוע ההמתנה הספציפי.
    אירועי המתנה בטבלה מוצגת רשימה של אירועי ההמתנה המובילים שהתרחשו בטווח התאריכים שנבחר.
    • הזמן הממוצע שהמשתמשים המתינו (באלפיות השנייה). הזמן הממוצע שהשאילתות היו באירוע ההמתנה הספציפי.
    • הזמן הכולל של ההמתנה (באלפיות השנייה). משך הזמן הכולל של ביצוע השאילתות באירוע ההמתנה הספציפי.
    • מספר אירועי ההמתנה. מספר הפעמים שאירוע המתנה ספציפי התרחש בטווח התאריכים שנבחר.
    • ‫%load לפי מאפיין התרשים. בתרשים הגלולה מוצג איך המאפיין של התרשים שנבחר בתפריט הנפתח של תרשים העומס על מסד הנתונים מתפלג באירוע ההמתנה הספציפי.
    מסד נתונים בטבלה מוצגת רשימה של מסדי הנתונים המובילים שתרמו לעומס במהלך טווח התאריכים שנבחר בכל השאילתות שבוצעו.
    • הזמן הממוצע שהושקע במסד הנתונים (באלפיות השנייה). הזמן הממוצע שהשאילתות היו במסד הנתונים הספציפי.
    • הזמן הכולל שהושקע במסד הנתונים (באלפיות השנייה). משך הזמן הכולל של הרצת השאילתות במסד הנתונים הספציפי.
    • ‫%load לפי מאפיין התרשים. בתרשים הגלולה מוצג איך המאפיין של התרשים שנבחר בתפריט הנפתח של תרשים העומס על מסד הנתונים מתפלג במסד הנתונים הספציפי.
    משתמש בטבלה מוצגת רשימה של המשתמשים המובילים בטווח התאריכים שנבחר בכל השאילתות שבוצעו.
    • משך הזמן הממוצע שהמשתמש השקיע (באלפיות השנייה). הזמן הממוצע שהשאילתות הוקדשו למשתמש הספציפי.
    • הזמן הכולל שהושקע במשתמש (באלפיות השנייה). משך הזמן הכולל של הרצת השאילתות של המשתמש הספציפי.
    • ‫%load לפי מאפיין התרשים. בתרשים הגלולה מוצג איך המאפיין של התרשים שנבחר בתפריט הנפתח של תרשים העומס על מסד הנתונים מתפלג בין המשתמשים הספציפיים.

הצגת זמן ההרצה של השאילתה

בתכונות המתקדמות של תובנות לגבי שאילתות ב-AlloyDB, עשר השאילתות המובילות שתורמות לעומס על מסד הנתונים מוצגות בטבלה Top dimensions by database load. השאילתה המובילה היא זו שתרמה הכי הרבה לעומס על מסד הנתונים בטווח התאריכים שנבחר. השאילתות הבאות הן אחוז מזמן הביצוע הארוך ביותר.

כדי לראות איך זמן הביצוע של פרמטר ב-Top dimensions by database load מושפע מערכים שונים של מאפיין התרשים שנבחר (שאילתות, סוגי אירועי המתנה, אירועי המתנה, מסדי נתונים ומשתמשים), מבצעים את השלבים הבאים:

  1. נכנסים לדף Clusters במסוף Google Cloud .

    כניסה לדף Clusters

  2. ברשימת האשכולות והמכונות, לוחצים על מכונה.

  3. לוחצים על Query insights.

  4. בוחרים את מסד הנתונים ואת המשתמש.

  5. כדי לראות איך פרמטר בטבלה מושפע מפרמטרים בתרשים Database Load, אפשר להציג את % load by chart dimension בטבלה Top dimensions by database load.

    לדוגמה, כשבוחרים באפשרות All Queries בתרשים Database Load ולוחצים על הכרטיסייה Queries בטבלה Top dimensions by database load, בעמודה % load by Queries מוצגת רשימה של השאילתות שתרמו הכי הרבה לעומס על מסד הנתונים שנבחר במהלך פרק הזמן הנתון.

הצגת פרטים על זמן הביצוע של השאילתה

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

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

כדי לראות פרטים על זמן הביצוע של השאילתה:

  1. נכנסים לדף Clusters במסוף Google Cloud .

    כניסה לדף Clusters

  2. ברשימת האשכולות והמכונות, לוחצים על מכונה.

  3. לוחצים על Query insights.

  4. בוחרים את מסד הנתונים ואת המשתמש.

  5. בטבלה Top dimensions by database load, לוחצים על More details בשאילתה.

התכונות המתקדמות של תובנות לגבי שאילתות ב-AlloyDB מציגות שאילתות מנורמלות (‎$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

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

קביעת העומס על מסד הנתונים לשאילתות מנורמלות

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

  1. נכנסים לדף Clusters במסוף Google Cloud .

    כניסה לדף Clusters

  2. ברשימת האשכולות והמכונות, לוחצים על מכונה.

  3. לוחצים על Query insights.

  4. בוחרים את מסד הנתונים ואת המשתמש.

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

בחלק העליון של התרשים Database Load מוצגים 10, 000 התווים הראשונים של השאילתה המנורמלת, שבהם הוסרו הליטרלים לצורך צבירה ומסיבות של פרטים אישיים מזהים (PII).

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

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

אפשר לסנן לפי אחוזון כדי לראות את האחוזון ה-50, ה-95 או ה-99, ולזהות שאילתות שלא עומדות בזמן הביצוע הצפוי. כדי לנתח את זמן האחזור ההיסטורי של השאילתה המנורמלת, משנים את חלון הזמן.

ניתוח שאילתות מנורמלות

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

התוכנית לדוגמה לביצוע שאילתה מספקת תצוגת EXPLAIN ANALYZE לדוגמאות של תוכנית לביצוע שאילתה שקשורות לשאילתה המנורמלת. אלה תוכניות לביצוע שאילתות שמספקות פירוט של הזמן הפעיל שנדרש לכל פעולה בתוכנית לביצוע השאילתה.

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

  1. נכנסים לדף Clusters במסוף Google Cloud .

    כניסה לדף Clusters

  2. ברשימת האשכולות והמכונות, לוחצים על מכונה.

  3. לוחצים על Query insights.

  4. בוחרים את מסד הנתונים ואת המשתמש.

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

  6. בטבלה Top dimensions by database load, לוחצים על שאילתה.

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

מעקב אחרי ביצועי האפליקציה ופתרון בעיות באמצעות תגים

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

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

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

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

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

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

כדי להציג מעקב בהקשר, פועלים לפי השלבים הבאים:

  1. נכנסים לדף Clusters במסוף Google Cloud .

    כניסה לדף Clusters

  2. ברשימת האשכולות והמכונות, לוחצים על מכונה.

  3. לוחצים על Query insights.

  4. בוחרים את מסד הנתונים ואת המשתמש.

  5. לוחצים על רשומה כלשהי בטבלה Top dimensions by database load.

  6. בדף Query insights details, לוחצים על END to END.

אתם יכולים גם להשתמש ב-Cloud Trace כדי לראות מעקב מקצה לקצה לכל שלב בתוכנית לביצוע שאילתה. כדי לגשת ל-Cloud Trace, בוחרים באפשרות Operations > Trace.

שאלות נפוצות

בקטע הזה מפורטות תשובות לשאלות נפוצות לגבי התכונות המתקדמות של Query Insights.

למה מחרוזת השאילתה נחתכת?

כברירת מחדל, בתובנות המתקדמות לגבי שאילתות מוצגים 10KB במחרוזות של שאילתות. אפשר להגדיל את התצוגה ל-100KB.

למה עומס ה-CPU גבוה מהקו של מספר הליבות המקסימלי בתרשים Database Load?

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

אפשר להשתמש במדדים הרגילים של תובנות לגבי שאילתות?

כן. תובנות רגילות לגבי שאילתות יוצרות מונים שאפשר לגשת אליהם דרך Stackdriver. המדדים האלה זמינים באמצעות Cloud Monitoring API וממשק המשתמש של Metrics Explorer. מידע נוסף זמין במאמר מדדיGoogle Cloud .

מה האורך המקסימלי של מחרוזת השאילתה?

בפלאגין הרגיל של תובנות לגבי שאילתות, האורך המקסימלי של מחרוזת השאילתה מוגבל ל-4.5KB תווים. בתובנות מתקדמות לגבי שאילתות, אורך המחרוזת שמוגדר כברירת מחדל הוא 10KB, והאורך המקסימלי מוגבל ל-100KB.

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

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

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