האם כדאי לכווץ את מסד הנתונים SQL SERVER כל פעם או להגדיל אותו?
קצת רקע על מדוע כדאי להקצות שטח גדול למסדי SQL SERVER
כאשר מגדירים למסד נתונים שיעשה SHRINK ומקצים לו את הגודל המינימלי הדבר אומנם חסכוני בהתחלה אבל לא אופטימלי לעבודה השוטפת:
כאשר מגדירים למסד נתונים שיעשה SHRINK ומקצים לו את הגודל המינימלי הדבר אומנם חסכוני בהתחלה אבל לא אופטימלי לעבודה השוטפת:
1. כאשר אתה מבקש מה SQL SERVER להוסיף רשומה חדשה והמקום נגמר לו לעומת מה שהוקצה הוא מריץ פעולת ALTER DATABASE על מנת להגדיל את מסד הנתונים - פעולה כבדה המשתמשת גם ב TRANSACTION LOG
2. הוספת הרשומה במקום אחר בקובץ (בשטח החדש שנוסף) תגרום לביזור של הנתונים במקום לרכז אותם במקום אחד - ההפך מפעולת DEFRAG - בזמן שליפת הנתונים ה SQL SERVER יצטרך לגזור את הנתונים ממקומות פיזים שונים.
3. ביזור הנתונים על פני חלקים שונים של הקובץ יוסיף נתוני מידע שבעצם יגרמו לקובץ לגדול
המלצות:
1. אם יש לך מסד נתונים עם 20 מגה של נתונים, תגדיר DATABASE עם 40 מגה פנוי ותן ל SQL SERVER לנהל אותו.
2. פעולת כיווץ - מומלץ לעשות פעם אחת ע"י צוות HOST AT ONCE לאחר יצירת ה DATABASE וייבוא הנתונים הראשוני
3. אם רוצים למחוק נתונים מטבלה (את כל הנתונים) מומלץ להשתמש בפקודת TRUNCATE TABLE ולא DELETE על מנת לא להשתמש יותר מדי ב TRANSACTION LOG