ביצועי המערכת היוו מאז ומתמיד את עמוד התווך המרכזי שלה. הצלחתה וייעילותה אל מול המשתמשים תלויות ברובן ברמת ביצועיה ומהירות איחזור הנתונים. אולם יחד עם זאת, קיימות גישות שונות בנוגע לתזמון בדיקות הביצועים. במאמר זה נדון בשיקולי הביצועים בשלב ניתוח המערכת, שלב אשר מוסכם לכל שהינו המשמעותי והמשפיע ביותר על רמת הפונקצינאליות אולם לא תמיד נהוג לייחס לו משמעות בהיבט רמת הביצועים.
בכל מערכת אותה אנו מבקשים לנתח קיימים תהליכים רבים אותם אנו מתבקשים להגדיר עוד בטרם ניגש למלאכת הכתיבה, תהליכים אלה מהווים לרוב את אבני הבניין המבטיחות את אמינות ונכונות מסד הנתונים. בשל חשיבותם אנו נוטים לעיתים להפריז במשאבים שאנו מקדישים לטובתם, אך האמת היא שלמרות חשיבותם המרכזית אל לנו לשכוח כי אינם מתקיימים לבדם וכי עקרון יעילות המערכת חייב לחול גם עליהם.
חלק מרכזי ביעילות תהליך הינו מיקום קטע הקוד המבצע אותו במערכת. מיקום לא נכון של קטע קוד עלול לגרור סירבול, איטיות ולפעמים אף הפרעה ממושכת למשתמשי המערכת ותהליכיה בשל טרנזקציות ממושכות הנועלות חלקים נכבדים במסד הנתונים.
הצלחה במיקום התהליכים במערכת תבטיח ניצול מרבי של כוח העיבוד המצוי במערכת לצד שימוש קטן ככל שניתן ברשת התקשורת המקומית – כלומר, מערכת יעילה, מהירה ונוחה לעבודה.
כל תהליך במערכת מורכב ממספר פעולות אותן ניתן לחלק בבירור לפעולות מסד נתונים ולפעולות עיבוד רגילות. פעולות מסד הנתונים הינן כל אותן פעולות אשר יכולות להתבצע אך ורק על ידי סביבת מסד הנתונים (שליפת נתונים, עדכונם וכד'), בעוד פעולות עיבוד רגילות הינן חישובים מתמטיים או לוגיים (לעיתים אף מסובכים וארוכים מאוד) אשר ניתן לבצעם בכל סביבות המערכת (לקוח, מערכת ההפעלה בשרת וכד'). על אף שפעולות העיבוד ניזונות מנתוני המסד הן אינן מחייבות את ביצוען על ידי מסד הנתונים עצמו.
העיקרון המוביל את החלטתנו בדבר מיקום תהליך במערכת צריך להיות היחס בין פעולות מסד הנתונים לבין פעולות אחרות בתהליך. תהליכים המורכבים רובם ככולם מפעולות מסד נתונים יאוחסנו על גבי מסד הנתונים עצמו, זאת על מנת למנוע תעבורת רשת מיותרת ולאפשר למסד הנתונים לבצע את האופטימיזציות הנדרשות על הפקודות בתהליך. אולם מאידך גיסא לא נרצה להכביד על מסד הנתונים בביצוע תהליכים אשר מרכיב פעולות המסד בהם הינו קטן ופשוט, תהליכים אלה יאוחסנו במחשבי לקוח או אפילו בשרת עצמו אך בסביבת מערכת ההפעלה.
פעמים רבות אנו נתקלים בפתרונות אשר נכתבו על ידי תוכניתני מערכות סגורות המריצים תהליכים בסביבת מערכת ההפעלה תוך קריאות תכופות ונשנות למסד הנתונים לצורך קבלת נתונים, עדכונם והזנת נתונים חדשים. לרוב נכתבו תהליכים אלה מתוך הנחה הגורסת שאין כל פגיעה בביצועי המערכת במידה והתהליך מורץ ע"י השרת ואינו מכביד על רשת התקשורת, אולם בפועל הם גורמים למסד הנתונים לסרוק שוב ושוב את אותן טבלאות במטרה להחזיר לסביבת מערכת ההפעלה נתונים שהכרחיים לריצת התהליך, בנוסף לכך הם מונעים מ-ORACLE לבצע אופטימיזציות על פקודות המסד ומכבידים מאוד על השרת.
לכן, בבואנו לנתח מערכת, עלינו לבחון כל תהליך לגופו ולמקמו בהתאם לעקרון היחס בין פקודות מסד לפקודות עיבוד. זאת כמובן תוך התחשבות ביכולת העיבוד, באיכות רשת התקשורת המקומית ובעוד גורמים ואילוצים, אולם עלינו לזכור תמיד כי חשיבות מיקום התהליך הינה המכרעת ביותר ביחס לכל גורם אחר המשפר את ביצועי המערכת. מוכח כי מערכת אשר נותחה בחוכמה ותהליכיה חולקו לפי עיקרון זה תהיה בעלת ביצועים טובים בהרבה ממערכות אשר נותחו ללא תשומת לב למיקומם של תהליכי המערכת.
|