מעקב אחרי שאילתות פעילות

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

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

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

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

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

    כניסה לדף Clusters

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

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

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

  5. בחלון Edit query insights settings, בוחרים באפשרות Enable advanced query insights features for AlloyDB ואז באפשרות Active Query Analysis.

  6. לוחצים על שמירת השינויים.

  7. בחלון Changes require restart, לוחצים על Confirm and restart.

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

הצגת השאילתות הפעילות

כדי לראות את השאילתות הפעילות:

  1. מבקשים מהאדמין להקצות לכם את התפקיד "צפייה ב-Database Insights Monitoring"‏ (roles/databaseinsights.monitoringViewer), או יוצרים תפקיד בהתאמה אישית עם הרשאת ה-IAM‏ databaseinsights.activeQueries.fetch.

  2. צריך להקצות את התפקיד הזה לכל משתמש שצופה בשאילתות פעילות.

  3. פותחים את הדף AlloyDB במסוף Google Cloud .

    כניסה ל-AlloyDB

  4. לוחצים על שם האשכול כדי לפתוח את הדף Overview שלו.

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

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

    אפשר לסנן את המידע לפי:

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

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

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

    הטרנזקציות שפועלות הכי הרבה זמן: סקירה כללית של 50 השאילתות המובילות שפועלות במצב active ו-idle in transaction, לפי זמן הביצוע בסדר יורד.

במרכז הבקרה של תובנות לגבי שאילתות אפשר לראות רשימה של 50 השאילתות הפעילות המנורמלות המובילות.

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

  • select * from my_table where id = 1;
  • select * from my_table where id = 2;
  • select * from my_table where id = 100;

הגרסה המנורמלת של השאילתות האלה היא התקציר הבא:

select * from my_table where id = ?;

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

הצגת העסקאות המובילות שפועלות הכי הרבה זמן

בטבלה הבאה מתוארות העמודות בטבלה Longest running transactions בלוח הבקרה של תובנות לגבי שאילתות:

שם העמודה תיאור
מזהה תהליך מזהה התהליך הוא המזהה הייחודי של החיבור למסד הנתונים.
מזהה צומת מזהה הצומת הוא המזהה הייחודי של צומת המכונה של מאגר הקריאה שבו פועלת השאילתה.
שאילתה טקסט מנורמל של שאילתת SQL.
סטטוס הסטטוס הנוכחי של החיבור. ערכי הסטטוס כוללים את active ו-idle in transaction.
משך הסשן משך הסשן הנוכחי (בשניות).
משך העסקה משך העסקה הנוכחית (בשניות).
משך השאילתה משך הזמן של השאילתה הפעילה הנוכחית (בשניות). משך השאילתות במצב idle in transaction הוא 0 כי השאילתות לא פועלות באופן פעיל.
סוג אירוע ההמתנה סוג אירוע ההמתנה שמתרחש במהלך הרצת השאילתה.
אירוע המתנה אירוע ההמתנה שמתרחש במהלך הרצת השאילתה.
מסד נתונים השם של מסד הנתונים שבו החיבור הזה פועל.
שם האפליקציה שם האפליקציה שבה החיבור הזה פועל.
שם משתמש השם של המשתמש שמחובר למסד הנתונים.
כתובת הלקוח כתובת ה-IP הספציפית של הלקוח ששלח שאילתה.
פעולה מכיל קישור לביטול עסקה.

התצוגה מתרעננת אוטומטית כל 60 שניות.

שימוש בשדות Database ו-User לסינון מרענן את הנתונים בדף.

כדי לנתח נתונים סטטיים, משביתים את האפשרות Auto-refresh ומשתמשים בשדה Filter בטבלה Longest running transactions לפי הצורך.

לסיים שאילתה או עסקה

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

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

כדי לסיים שאילתה או טרנזקציה:

  1. בוחרים את השאילתה בטבלה Longest running transaction.
  2. גוללים שמאלה לעמודה פעולה.
  3. לוחצים על סיום החיבור.
  4. בחלון סיום החיבור, לוחצים על אישור.

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

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