
03-04-2009, 09:07
|
|
מנהל פורומי "תכנות ובניית אתרים" ו"חומרה ורשתות"
|
|
חבר מתאריך: 25.10.01
הודעות: 42,778
|
|
אני לא ממש מבין גדול בתחום של SP, אבל למיטב הבנתי כל הרעיון הוא ליצור "קופסא שחורה" שמבצעת מה שאמורים לבצע, מבלי שתצטרך "לכתוב" את השאילתות שוב ושוב. כמדומני. יש אמנם יתרון מסויים בשימוש בהן בגלל שהן שמורות כשהן כבר "מקומפלות" אחרי שהאופטימייזר רץ עליהם, אבל אני לא יודע כמה זה חשוב בשאילתות פשוטות יחסית.
לדעתי אתה צריך לשאוף לזמן ביצוע מינימלי של שאילתא ולמניעה של נעילת טבלאות היכן שלא שצריך (למשל, אם אתה משתמש ב MySQL, אזי מנוע מסד הנתונים InnoDB מאפשר לנעול רק חלקים מטבלה בעוד ש MyISAM - לא.). נירמול נכון, הוספת כל האינדקסים שצריך, רמיזה לאופטימייזר באיזה אינדקס כדאי לו להשתמש (HINTING), וכו'. לדעתי אלה הפרמטרים שישפיעו הרבה יותר על הביצועים.
קח בחשבון שלמסדי נתונים יש גם הגדרות אופטימיזציה שניתן לעשות ברמת השרת. שוב, אם אקח את MySQL בתור דוגמא, אז הוא יודע לעשות cached queries, כלומר, אם אתה מבצע שאילתא יותר מפעם אחת, מבלי שהמידע באחת הטבלאות שמשפיע עליה השתנה, השאילתא בכלל לא "תחושב" מחדש, אלא ישר תקבל תשובה מהזיכרון. הפיצ'ר הזה רלוונטי רק אם אכן המידע שלך לא משתנה בכל פעם שאתה עושה SELECT על המידע 
|