
database name שווה ל-GiftShop, כך שרואים רק את השאילתות שנשלחות למסד שלנו. בדוגמה השאילתה של קבלת כל המתנות לקחה 561 מיקרו-שניות.use GiftShop ואז select על המתנות. השאילתה הרגילה לקחה 739 מיקרו-שניות, פחות ממילי-שנייה, ולכן לא הופיעה בפילטר.WAIT FOR DELAY עם הזמן 0 שעות, 0 דקות, 4 שניות. מכל ה-Batch, סדרת פקודות אחת בסשן אחד, נתפסת עכשיו שאילתה עם Duration של ארבע שניות ומשהו, וניתן לראות גם את הטקסט שלה.הטקסט המלא של הדקות הראשונות בהרצאה «בדיקת ביצועים עם SQL Profiler» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
למסד הנתונים SQL Server וכמובן לעוד הרבה מסדים נתונים יש כלים שמאפשרים לנתח את הפרפורמנס, את המהירויות, את הביצועים של הדאטאבייס. כלי אחד כזה אנחנו יכולים להגיע אליו כאן מטולס, נקרא SQL Server Profiler, בואו רגע נדליק אותו, נתחבר, בואו נגיד נקרא לזה טסטינג, גיפט,
שופ, נבצע run. הכלי הזה הוא מראה לנו כל שאילתא שמתבצעת בדטאבייס, כמה זמן היא לוקחת ועוד המון נתונים לגבי השאילתא.
הכלי הזה ספציפית sql server profiler הוא קצת נחשב מיושן ויש כלי חדש יותר שמחליף אותו. סתם לדוגמה אם אני ארצה רגע לעשות שאילתא בואו נחזור לכאן ונריץ את התוכנית שלנו ופשוט נקבל את כל המתנות שיש לנו כרגע.
אז אם אנחנו חוזרים בחזרה לכלי אנחנו יכולים לראות שיש כאן כל מיני פעולות שהתבצעו, הנה יש לנו פה את השאילתה שהייתה, מתי היא התחילה סטארטינג, מתי היא הסתיימה, אנחנו רואים פה את הקומפליט ואנחנו יכולים לראות כל מיני הגדרות לגבי זה, שימו לב שזה גם מתמלא כל הזמן בכל מיני פעילויות שמתרחשות ברקע כי sql כמובן משרתת עוד דברים במחשב ואנחנו יכולים
לראות פה לדוגמה האם התבצעה כתיבה, אנחנו רואים שלא התבצעה כתיבה כרגע לדאטאבייס. את הדוריישן, כמה זמן היה כאן? הדוריישן הזה במיקרו שניות, מיליון מיקרו שניות, זה שנייה אחת.
זה כמובן פחות משנייה. יש לנו כאן כל מיני פרמטרים. הכלי הזה נחשב קצת מיושן, בואו נסתכל על כלי קצת יותר חדש, נסגור אותו, נגיד לו כן, אנחנו רוצים לצאת, נחזור בחזרה, והכלי הקצת יותר חדש נמצא פה והוא נקרא Extended Event.
פרופיילר ה-X זה Extended, בעצם חילקו את זה לשני חלקים. סטנדרט זה כל מיני איבנטים שמתרחשים במסד הנתונים שהם כלליים, זה יכול להיות לוג אין, לוג אאוט, שאפליקציה מבצעת, הכוונה להתחברות לדאטאבייס, פתיחת סשן מול הדאטאבייס, סשן הכוונה, אני עכשיו מתקשר עם הדאטאבייס, כל מה שקורה במהלך התקשורת הזאת,
עושים לנו סשן איי-די קוד מסוים שאפשר אחר כך לזהות מי אנחנו ומה עשינו אז כל הדברים והמנהלות האחרות נמצאות כאן tsql זה קיצור של transact sql זה בעצם הרחבה של שפת sql tsql זאת הרחבה של שפת sql עבור sql סרבר משתמשים בפקודות האלה כאשר אנחנו כותבים שאילתות יותר מורכבות שנמצאות בתוך הדאטאבייס עצמו השאילתות האלה נקראות stored procedures או functions, אין לנו כרגע
stored procedure אז אנחנו רוצים להתעסק עם הסטנדרט ולראות שאילתות בודדות שאנחנו מייצרים. בואו נבצע launch session, ככה אנחנו עושים את זה, מה קשור אם אני launch session ואנחנו יכולים פשוט לגשת ולהתחיל לבצע פעולות. נניח אנחנו הולכים ושוב פעם מבצעים את השאילתה, תביא לי את כל המתנות, הנה ה-select, בואו
נסגור, נחזור בחזרה לדאטאבייס, הוא הקליט את כל מה שקרה ואנחנו רואים שוב שיש לנו פה עוד כל מיני דברים שהתרחשו ברקע, הרבה רעש כמו שאתם רואים, אנחנו רוצים טיפה לפלטר ברעש הזה.
אז יש לנו אפשרות להגדיר פילטר, יש לנו כאן הנה פילטר, בואו אולי נגרור את זה טיפה לפה ויש לנו אפשרות להגדיר פילטר על החלונית הזאת ולהגדיר כל מיני קטגוריות. נניח שאנחנו רוצים איזה שדה מהשדות האלה שקיימים פה, אנחנו רוצים להגדיר מה הערכים שאנחנו רוצים לראות.
ערכים אחרים אנחנו לא רוצים לראות. אז בוא נניח שאנחנו רוצים לראות ערכים רק שקשורים לדאטאבייס ניים שלנו. הדאטאבייס ניים, איפה הוא מתחבא לי? הנה הוא. נגיד לו אנחנו רוצים דאטאבייס ניים שווה לגיפט שופ.
זה הדאטאבייס. כל מיני דברים שקשורים למנהלות של המערכת אנחנו לא רוצים. עשינו פה איזשהו פילטור והוא מראה לנו רק את השאילתות שאנחנו ירינו לדאטאבייס שלנו.
אנחנו יכולים לראות כאן את הדו ריישן, הנה הדו ריישן. אנחנו רואים שזה יעלה מאוד מאוד מהר, 561 מיקרו שניות.
1 חלקי מיליון, 561 מיליוניות השנייה. למה השימוש של הכלי הזה ושל הכלי הקודם של ה-SQL Server Profiler? אז השימוש זה בעצם לאתר מצבים שפתאום יש לנו שאילתא שהיא לא כל כך מהירה, שהיא איטית, שהיא bad performance, מה שנקרא, אולי עשינו משהו לא כזה בסדר, והבאנו המון דברים מיותרים, והדאטאבייס עכשיו
יש בו איזשהו עיכוב. בואו נעשה הדמיה של הדבר הזה. נניח שאנחנו רוצים לייצר שאילתא שהיא מאוד איטית, ומבין כל השאילתות לגלות את השאילתות האיטיות האלה.
כמובן ש-Entity Framework לא מייצרת שאילתא איטית, היא מייצרת שאילתא די מהירה, יכול להיות שאנחנו נגדיר לה מתישהו לעשות איזו שאילתא לא בסדר, או קצת איטית, אבל זה לא המצב שיש לנו כרגע.
לכן מה שאני אעשה, אני פשוט אצייצר קווירי. יש לנו פה אפשרות לייצר קווירי חדשה, קווירי שאילתה, אבל ממה שאני כותב פה הולך להתבצע ישירות בתוך הדאטאבייס, אז אני אגדיר כרגע Select All From Gifts, כאשר ב-Default אני רואה את זה כאן, מסד הנתונים זה לא Giftshop, זה מסד נתונים כללי שנקרא מאסטר, הוא איזשהו מסד נתונים שקיים ב-SQL Server, מסד נתונים ראשי כזה.
שנייה לפני זה אני אגיד למערכת to use gift shop בצורה כזאת. בדרך כלל שמים גם נקודה פסיק אחרי פקודות אם יש לי סדרה של פקודות אבל לא חייבים במקרה הזה.
זה כמובן לא שאילתה שתיקח הרבה זמן אבל אנחנו כן רוצים לראות אותה בכלי הזה של הפרופיילר. אז בואו נחזור ונבצע אקסקיוט והנה אנחנו רואים שהתבצעה מאוד מהר.
כאן אנחנו יכולים לראות את הדוריישן שימו לב שהדוריישן הוא לא הוא אפילו לא הגיע לשנייה זה ברור. אנחנו מסתכלים על הכלי הזה והנה השאילתא שלנו.
אוקיי, מה הדוריישן שלה? הדוריישן שלה היה 739 מיקרו שנייה.