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

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

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

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

כדי לעקוב אחרי שאילתות פעילות, אפשר להשתמש במהדורת 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

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

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

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

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

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

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

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

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

    כניסה לדף Cloud SQL Instances

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

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

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

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

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

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

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

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

    • 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 ולהפעיל את Query Insights ל-Cloud SQL Enterprise Plus.

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

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

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

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

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

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

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

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

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

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

המסוף

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

    כניסה לדף Cloud SQL Instances

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

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

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

המסוף

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

    כניסה לדף Cloud SQL Instances

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

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

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

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

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

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

  6. מזהים את השאילתה הספציפית שנחסמה ולוחצים על סיום הסשן. אחרי שמסיימים את הסשן, אפשר לעבור אל 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 במזהה של הסשן שגורם לחסימה.

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

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