בדף הזה מתוארים הרכיבים העיקריים של הכלי להמחשה חזותית של תוכניות השאילתות.
הכלי להמחשה חזותית של תוכנית השאילתה במסוף Google Cloud עוזר להבין את המבנה של תוכנית הביצוע ש-Spanner בוחר כדי להעריך שאילתה.
הכלי להמחשה מציג את התוכנית כתרשים חזותי, וכך קל יותר לנתח איך Spanner מריץ את השאילתות ולזהות צווארי בקבוק פוטנציאליים בביצועים. אתם יכולים להשתמש בכלי להמחשה חזותית של תוכנית השאילתה כדי לבצע את הפעולות הבאות:
- ניפוי באגים של שאילתות איטיות: זיהוי החלק בתוכנית לביצוע השאילתה שדורש הכי הרבה זמן או משאבים.
- אימות האופטימיזציות: השוואה בין תוכניות לביצוע שאילתות לפני ואחרי ביצוע שינויים (כמו הוספת אינדקס או כתיבה מחדש של צירוף) כדי לוודא שהביצועים השתפרו.
- הבנת התנהגות השאילתות: איך Spanner מעבד הצהרות SQL מורכבות, כולל שאילתות איחוד (join), צבירות ופעולות מבוזרות.
יתרונות השימוש בכלי להמחשה חזותית של תוכנית לביצוע שאילתה
תוכניות לביצוע שאילתות יכולות להיות מורכבות. הכלי להמחשה חזותית מפשט את ניתוח התוכניות באמצעות התכונות הבאות:
- ייצוג גרפי: מציג את זרימת הנתונים מטבלאות ומאינדקסים דרך אופרטורים שונים לתוצאה הסופית.
- תובנות לגבי הביצועים: זיהוי אופרטורים יקרים באמצעות רמזים חזותיים לזמן אחזור ארוך ולצריכת מעבד (CPU) גבוהה.
- תצוגה חזותית של מספר השורות: מציגה את נפח הנתונים בכל שלב באמצעות אינדיקטורים של עובי הקו.
- Detailed statistics: נתונים סטטיסטיים ספציפיים של זמן הריצה לכל אופרטור.
גישה לכלי להמחשה חזותית של תוכנית לביצוע שאילתה
אפשר לגשת לכלי להמחשה חזותית של תוכנית לביצוע שאילתה במסוף Google Cloud באחת מהדרכים הבאות:
- Spanner Studio: יצירת תוכנית לביצוע שאילתה בזמן אמת, לפי דרישה, בזמן כתיבה ובדיקה של שאילתות.
- תובנות לגבי שאילתות: הצגת תוכניות היסטוריות לביצוע שאילתות שנדגמו מעומסי עבודה בסביבת הייצור לאורך זמן.
הצגת תוכנית על פי דרישה ב-Spanner Studio
כדי להציג תוכנית לביצוע שאילתה על פי דרישה ב-Spanner Studio:
נכנסים לדף Instances של Spanner במסוף Google Cloud .
לוחצים על שם המכונה שמכילה את מסד הנתונים שרוצים לשלוח אליו שאילתה.
ברשימה Databases, לוחצים על שם מסד הנתונים.
בתפריט הניווט, לוחצים על Spanner Studio.
בחלונית העריכה, מזינים את שאילתת ה-SQL.
לוחצים על Run.
לוחצים על הכרטיסייה הסבר.
הצגת תוכנית שנדגמה בתובנות לגבי שאילתות
כדי לראות תוכנית היסטורית שנדגמה לביצוע שאילתה ב-תובנות לגבי שאילתות:
נכנסים לדף Instances של Spanner במסוף Google Cloud .
לוחצים על שם המכונה שמכילה את מסד הנתונים שרוצים לבדוק.
בתפריט הניווט, לוחצים על Query insights.
בוחרים את מסד הנתונים ואת טווח התאריכים שרוצים לנתח.
בטבלה TopN queries, לוחצים על השאילתה או על תג הבקשה שרוצים לבדוק.
בתרשים Query plans samples, לוחצים על נקודת דגימה שמייצגת הרצת שאילתה.
בקטע Query plan visualizer, צופים בתוכנית לביצוע שאילתה חזותית.
ניווט בוויזואליזציה
הכלי להמחשה חזותית מציג את התוכנית לביצוע השאילתה כגרף אציקלי מכוון (DAG).

התצוגה החזותית של תוכנית לביצוע שאילתה עשויה להיות גדולה, בהתאם לשאילתה שהרצתם. כדי להסתיר או להציג פרטים, לוחצים על בורר התצוגה Expanded/Compact. כדי להגדיל או להקטין את התצוגה, משתמשים בפקד הזום.
בממשק של הכלי להמחשה חזותית יש את חלוניות המידע הבאות:
כדי להוריד את התוכנית החזותית לביצוע השאילתה, לוחצים על Download JSON. כדי לראות את תוכנית לביצוע שאילתה במועד מאוחר יותר, אתם יכולים לייבא את פרופיל ה-JSON שהורדתם בחזרה ל-Spanner Studio. אם אתם צריכים לפתור בעיות בביצועים, שתפו את קובץ ה-JSON עם צוות התמיכה של Spanner.
גרף אציקלי של תוכנית לביצוע שאילתה
הלוגיקה שבה Spanner משתמש כדי להריץ את השאילתה מופיעה כ-DAG. התרשים מציג את זרימת הנתונים מלמטה למעלה. הטבלאות והאינדקסים מופיעים בתחתית, והפלט הסופי של השאילתה מופיע בחלק העליון.
כל צומת בתרשים מיוצג על ידי כרטיס. כל כרטיס מייצג איטרטור שצורך שורות מהקלט שלו ומפיק שורות להורה שלו.
הקווים שמחברים בין הכרטיסים מייצגים את זרימת השורות בין האיטרטורים. עובי הקו מציין את המספר היחסי של השורות שעברו. קווים עבים יותר מציינים יותר שורות.
כל כרטיס בתרשים מכיל את הפרטים הבאים:
- שם האיטרטור: השם של האיטרטור.
- נתונים סטטיסטיים של זמן ריצה: מספר השורות שהוחזרו, זמן האחזור וניצול המעבד (CPU).
לוחצים על כרטיס כדי לראות מידע נוסף על זמן האחזור, השימוש ב-CPU, השורות שהוחזרו, מספר ההרצות ומספר קבוצות המכונות.
למידע נוסף על אופרטורים, קראו את המאמר אופרטורים להרצת שאילתות.
שאילתות ב-Spanner בדרך כלל מאחזרות נתונים מכמה פיצולים של מסד הנתונים. קבוצת מכונות מייצגת קבוצה של אופרטורים רציפים להרצת שאילתות, שפועלים יחד על קבוצה של פיצולים. בתוך קבוצת מכונות אחת, האופרטורים פועלים ברצף מלמטה למעלה, ואילו קבוצות מכונות שונות פועלות במקביל. כשהנתונים עוברים בין פיצולים בגבולות של קבוצות מכונות, הם עוברים דרך קריאות לשירות מרוחק (RPC).
מידע נוסף על פיצולים זמין במאמר פיצולים של מסדי נתונים.
הכלי החזותי עוזר להבחין בין הפצה לוגית להפצה פיזית:
- גבולות לוגיים: כרטיסים עם התווית Distributed מציינים איפה מתכנן תוכנית לביצוע שאילתה פיצל את הלוגיקה של השאילתה.
- הפצה פיזית: הצבעים של קבוצת המכונות בתרשים מייצגים את הביצוע הפיזי בפועל, שנגזר מהנתונים הסטטיסטיים של זמן הריצה.
הגבולות הפיזיים תואמים בדרך כלל לאופרטורים הלוגיים המבוזרים, אבל הם יכולים להשתנות בהתאם לאופן שבו הפיצולים ממוקמים בשרתים.
סיכום השאילתה
בחלונית Query summary מוצגים מדדי הביצוע הכלליים הבאים, ומודגשים צווארי בקבוק פוטנציאליים בשאילתה:
- Total elapsed time: משך הזמן הכולל של הרצת השאילתה, מההתחלה ועד הסוף.
- זמן ה-CPU: זמן ה-CPU המצטבר שנוצל בכל השרשורים והשרתים שמעבדים את השאילתה.
- זמן יצירת התוכנית: הזמן שנדרש לקומפיילר ולאופטימייזר של השאילתה כדי ליצור את תוכנית ההרצה.
- Server queue delay: משך הזמן שהשאילתה המתינה בתורי השרת לפני שהעיבוד התחיל.
- Rows returned: מספר השורות הכולל שהוחזרו בתוצאת השאילתה הסופית.
- שורות שנסרקו: המספר הכולל של השורות שנקראו מהאחסון בכל הטבלאות והאינדקסים שנסרקו.
- קריאות מרחוק: המספר הכולל של קריאות RPC שבוצעו בין פיצולים או קבוצות של מכונות.
- גרסת הכלי לאופטימיזציה של שאילתות: הגרסה של הכלי לאופטימיזציה של שאילתות ב-Spanner ששימשה להידור התוכנית.
- חבילת נתונים סטטיסטיים: חבילת הנתונים הסטטיסטיים של הכלי לאופטימיזציה שמשמשת לאופטימיזציה מבוססת-עלות.
מפעילים בולטים
בקטע Prominent operators מודגשים האיטרטורים שצורכים הכי הרבה משאבים בתוכנית לביצוע השאילתה:
- זמן האחזור הארוך ביותר: האופרטור עם משך הביצוע הארוך ביותר.
- Highest CPU time: האופרטור שצרך הכי הרבה זמן מעבד (CPU).
- מספר השורות הגבוה ביותר: האופרטור שעיבד או החזיר את מספר השורות הגבוה ביותר.
ציר הזמן של הרצת השאילתה
בכרטיסייה Query execution timeline מוצג תרשים שמבוסס על זמן, שבו אפשר לראות כמה זמן כל קבוצת מכונות מריצה את החלק שלה בשאילתה. יכול להיות שקבוצת מכונות לא תפעל במשך כל השאילתה, או שהיא תפעל כמה פעמים. עם זאת, בציר הזמן מוצגות רק שעת ההתחלה של ההרצה הראשונה ושעת הסיום של ההרצה האחרונה.
סימנים ויזואליים לביצועים
הכלי להמחשה חזותית משתמש בצבעים ובסמלים הבאים כדי לעזור לכם לזהות בעיות:
- פסים אדומים: מציינים את אחוז זמן האחזור או זמן ה-CPU שנוצל על ידי האופרטור הזה ביחס לשאילתה הכוללת.
- משולשי אזהרה: מציינים שהתבצעה סריקה מלאה של הטבלה. סריקות כאלה בדרך כלל מצביעות על הזדמנות לבצע אופטימיזציה של השאילתה, למשל על ידי הוספת אינדקס משני.
- צבעים של קבוצות מכונות: הבחנה בין קבוצות מכונות והדגשת המעברים בין הקבוצות. המעברים האלה דורשים הפעלה מרחוק במכונות שונות, מה שגורם לתקורה של סריאליזציה ורשת. צבעי קבוצות המכונות האלה מוצגים גם בציר הזמן של הרצת השאילתה.
המאמרים הבאים
- איך מכווננים שאילתה באמצעות הכלי להמחשה חזותית של תוכנית לביצוע שאילתה
- אופרטורים ספציפיים להרצת שאילתות
- להבין לעומק את תוכניות ההרצה של שאילתות.