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

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

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

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

כדי לעקוב אחרי שאילתות פעילות, אתם יכולים להשתמש ב-Cloud SQL מהדורת Enterprise או ב-Cloud SQL מהדורת Enterprise Plus.

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

מידע נוסף על מהדורות Cloud SQL זמין במאמר מבוא למהדורות Cloud SQL.

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

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

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

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

ההרשאות הנדרשות

כדי לראות שאילתות פעילות, צריך את ההרשאות הבאות:

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

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

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

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

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

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

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

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

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

    כניסה לדף Cloud SQL Instances

  2. כדי לפתוח את הדף Overview של מכונה, לוחצים על שם המכונה.

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

    • לוחצים על הכרטיסייה Query insights.
    • לוחצים על מעבר לתובנות לגבי שאילתות כדי לקבל מידע מעמיק יותר על שאילתות וביצועים. לוח הבקרה Query Insights נפתח. בחלק העליון מוצגים פרטים על המכונה.
  4. לוחצים על הכרטיסייה Active queries.

    מכאן אפשר לשנות את פרטי השאילתה שמופיעים בטבלה Longest running transactions:

    • מסד נתונים: סינון עומס השאילתות במסד נתונים ספציפי או בכל מסדי הנתונים.
    • ‫User: סינון עומס השאילתות לפי חשבון משתמש ספציפי.

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

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

  • שאילתות רגילות

    • select * from test_table where id=1;
    • select * from test_table_where id=2;
  • תקציר או שאילתה מנורמלת

    • select * from test_table where id=?;

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

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

הטבלה Longest running transactions בלוח הבקרה Query insights מכילה את העמודות הבאות:

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

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

אתם יכולים להשתמש בתפריט האנכי Content display options... כדי לסנן את העמודות שאתם רוצים להציג.

סיום סשן

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

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

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

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

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

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

ב-Cloud SQL אתם יכולים לסיים שאילתות פעילות ספציפיות שנמשכות זמן רב או שנחסמו.

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

כברירת מחדל, במסוף Google Cloud לא מוצגות השאילתות הפעילות שנחסמו.

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

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

המסוף

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

    כניסה לדף Cloud SQL Instances

  2. כדי לפתוח את הדף Overview של מכונה, לוחצים על שם המכונה.
  3. לוחצים על Edit.
  4. מרחיבים את הקטע Query insights.
  5. בוחרים גם באפשרות Enable Query insights וגם באפשרות Enable Enterprise Plus features. צריך להפעיל את שתי ההגדרות.
  6. בוחרים באפשרות ניתוח של שאילתות חסומות.
  7. לוחצים על Save.

זיהוי וסיום של שאילתה פעילה חסומה

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

המסוף

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

    כניסה לדף Cloud SQL Instances

  2. כדי לפתוח את הדף Overview של מכונה, לוחצים על שם המכונה.
  3. בתפריט הניווט של SQL, לוחצים על Query insights.
  4. לוחצים על הכרטיסייה Active queries.

    אם אין לכם שאילתות פעילות, עוברים אל Cloud SQL Studio ומריצים את השאילתות שרוצים לחקור.

  5. עוברים לקטע Longest running transactions. בכל קטגוריה אפשר לראות עד 50 מהשאילתות הפעילות שפועלות הכי הרבה זמן.

    לכל רשומה שמוצגת יש פרטי שאילתה פעילה, כולל:

    • מזהה הסשן: מזהה הסשן של השאילתה. לוחצים על expand כדי להציג את הרשומה. יכול להיות שיופיע אחד משני הסמלים הבאים:
      • סמל של שעון חול: הסמל הזה מציין שהשאילתה ממתינה לסיום של שאילתה אחרת. אם מופיע מספר ליד הסמל, הוא מציין כמה שאילתות תלויות ממתינות לסיום השאילתה הזו.
      • סמל של חסימה: הסמל הזה מציין שהשאילתה לא יכולה להסתיים, ויכול להיות שהיא חוסמת שאילתות אחרות.
    • ‫Query: טקסט של שאילתת SQL.
    • מצב הסשן: המצב של הסשן.
    • ‫Query duration (seconds): משך הזמן שהשאילתה פועלת.
    • ‫CPU time(ms): זמן המעבד (CPU) באלפיות השנייה שמשמש את הבקשה.
    • סוג אירוע ההמתנה: סוג אירוע ההמתנה, אם הבקשה חסומה לביצוע שאילתה.
    • משאב בהמתנה: המשאב שהבקשה ממתינה לו כרגע, אם הבקשה חסומה להרצת שאילתה.
    • משך ההמתנה לעסקה (בשניות): משך ההמתנה הנוכחי, אם הסשן חסום.
    • פעולה: פעולות אפשריות, כמו סיום הסשן.

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

  6. מזהים את השאילתה הספציפית שנחסמה ולוחצים על Terminate session. אחרי שמסיימים את הסשן, אפשר לעבור אל Cloud SQL Studio כדי להריץ שוב את השאילתות הפעילות.

הצגת פרטים על חסימת סשנים רדומים

בכרטיסייה Active queries מוצגים סשנים שמעבדים כרגע בקשה. סשנים במצב SLEEPING לא נכללים בתצוגה הזו.

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

SELECT c.session_id, st.text,s.login_name, s.open_transaction_count, s.host_name, s.program_name
FROM sys.dm_exec_connections AS c JOIN sys.dm_exec_sessions AS S ON c.session_id=s.session_id
CROSS APPLY sys.dm_exec_sql_text(c.most_recent_sql_handle) AS st
WHERE s.session_id=BLOCKING_SESSION_ID

מחליפים את BLOCKING_SESSION_ID במזהה הסשן שגורם לחסימה.

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

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