שיקולים עבור ההגדרות "autogrow" ו- "autoshrink" ב- SQL Server

תרגומי מאמרים תרגומי מאמרים
Article ID: 315512 - View products that this article applies to.
הרחב הכל | כווץ הכל

תקציר

הגדרות ברירת המחדל של autogrow ו- autoshrink יפעלו עבורך ללא כל פעולת כוונון במערכות רבות של SQL Server. עם זאת, ישנן סביבות שבהן עליך להפעיל את ההגדרות או סביבות שבהן עליך לכוונן את הפרמטרים של autogrow ו- autoshrink. מאמר זה מעניק מידע רקע שינחה אותך מתי לבחור הגדרות עבור הסביבה שלך.

מידע נוסף

להלן כמה נושאים שיש לשקול כאשר מחליטים לכוונן את הפרמטרים autogrow ו- autoshrink.

כיצד יש לקבוע את תצורת ההגדרות?

  1. תוכל לקבוע את תצורת ההגדרות של autogrow ו- autoshrink באחת מהדרכים הבאות:
    • הצהרת ALTER DATABASE (לא זמינה ב- SQL Server 7.0)
    • SQL Server Management Studio או SQL Enterprise Manager
    • הפרוצדורה המאוחסנת sp_dboption (לא בשימוש ב- SQL Server 2005)
    הערה אם אתה משתמש ב- SQL Server 2005, השתמש ב- SQL Server Management Studio במקום ב- SQL Enterprise Manager. לקבלת מידע נוסף על האופן שבו ניתן לקבוע הגדרות אלה ב- SQL Server 2005, בקר באתרי האינטרנט הבאים של Microsoft Developer Network ?(MSDN):
    כיצד לבצע: הוספת נתונים או קבצי יומן רישום למסד נתונים (SQL Server Management Studio)
    http://msdn.microsoft.com/he-il/library/ms189253.aspx
    מאפייני מסד נתונים (הדף 'קבצים')
    http://msdn.microsoft.com/he-il/library/ms180254.aspx
    תוכל גם לקבוע את תצורת האפשרות autogrow כאשר תיצור מסד נתונים.

    באפשרותך להציג את ההגדרות הנוכחיות באמצעות מאפייני מסד הנתונים ב- SQL Enterprise Manager ?(SEM). לחלופין, תוכל להפעיל את פקודת Transact-SQL הבאה:
    sp_helpdb [ [ @dbname= ] 'name' ]
  2. זכור כי הגדרות autogrow חלות על כל קובץ בנפרד. לכן, עליך להגדיר אותן בשני מקומות לפחות עבור כל מסד נתונים (מקום אחד עבור קובץ הנתונים הראשי ומקום אחד עבור קובץ יומן הרישום הראשי). אם ברשותך קבצי נתונים ו/או קבצי יומן רישום מרובים, עליך להגדיר את האפשרויות בכל קובץ. בהתאם לסביבה שבה אתה עובד, ייתכן שלכל קובץ מסד נתונים יהיו הגדרות שונות.

מהן ההשלכות על הביצועים?

  • אם תפעיל טרנזקציה שמחייבת שטח יומן רישום גדול יותר מהשטח הזמין, והפעלת את האפשרות autogrow עבור יומן הרישום של הטרנזקציה של אותו מסד נתונים, הזמן הדרוש להשלמת הטרנזקציה יכלול את הזמן הדרוש להגדלת יומן הרישום של הטרנזקציה בנפח שהוגדר. אם תוספת הגידול גדולה או שישנם גורמים אחרים שגורמים לפעולה זו להימשך זמן רב, השאילתה שבה פתחת את הטרנזקציה עלולה להיכשל עקב שגיאת זמן קצוב. בעיה דומה יכולה להתעורר כתוצאה מתצורת autogrow של מקטע נתונים במסד הנתונים. כדי לשנות את תצורת autogrow, עיין בנושא "ALTER DATABASE" (שינוי מסד נתונים) במדריך המקוון SQL Server Books Online.
  • בעת הפעלת טרנזקציה גדולה שמחייבת הגדלה של יומן הרישום, טרנזקציות אחרות שמחייבות כתיבה ליומן הטרנזקציות ייאלצו להמתין אף הן עד להשלמת פעולת ההגדלה.
  • אם תשלב את האפשרויות autogrow ו- autoshrink, אתה עלול ליצור תקורה מיותרת. ודא שערכי הסף שמפעילים את פעולות ההגדלה והכיווץ לא יגרמו לשינויים תכופים בגודל כלפי מעלה וכלפי מטה. לדוגמה, נניח שאתה מפעיל טרנזקציה שגורמת ליומן הטרנזקציות לגדול ב- ?100 MB בזמן שהיא מתבצעת. זמן מה לאחר מכן, autoshrink מופעל ומכווץ את יומן הטרנזקציות ב- ?100 MB. לאחר מכן, אתה מפעיל שוב את אותה טרנזקציה שגורמת ליומן הטרנזקציות לגדול שוב ב- ?100 MB. בדוגמה זו, יצרת תקורה מיותרת ואולי אף פיצול של קובץ יומן הרישום, כאשר לשתי האפשרויות יש השפעה שלילית על הביצועים.
  • לפיצול פיזי משינוי הגודל של הנתונים של קבצי יומן נתונים יכולה להיות השפעה חמורה על הביצועים. הדבר נכון בין אם אתה משתמש בהגדרות אוטומטיות ובין אם אתה מגדיל ומכווץ את הקבצים לעתים תכופות באופן ידני.
  • אם תגדיל את מסד הנתונים בתוספות קטנות, או אם תגדיל אותו ולאחר מכן תכווץ אותו, תוכל לגרום לפיצול הדיסק. פיצול דיסק עלול לגרום לבעיות ביצועים בנסיבות מסוימות. תרחיש של תוספות קטנות בגידול עלול אף הוא לפגוע בביצועי המערכת.
  • ב- SQL Server 2005 או בגירסאות מתקדמות יותר, באפשרותך להפוך אתחול קבצים מיידי לזמין. אתחול קבצים מיידי מאיץ את הקצאות הקבצים לקבצי נתונים בלבד. אתחול קבצים מיידי אינו חל על קבצי יומן רישום.
  • אם בוצע מספר רב של גידולי קבצים בקבצי יומן הרישום שלך, ייתכן שיש לך מספר גדול מאוד של קבצי יומן רישום וירטואליים (VLF). מצב זה עלול לגרום לבעיות ביצועים בפעולות אתחול/פעולות מקוונות של מסד נתונים, בשכפול, בשיקוף ובלכידת שינוי נתונים (CDC). בנוסף, מצב זה עלול לעתים לגרום לבעיות ביצועים בעת ביצוע שינויים בקבצים.

שיטות עבודה מומלצות

  • במערכת ייצור מנוהלת, עליך לשקול להשתמש באפשרות autogrow רק לשעת חירום במקרה של גידול לא צפוי. אל תנהל את גידול הנתונים ויומן הרישום על בסיס יום-יומי באמצעות autogrow.
  • באפשרותך להשתמש בהתראות או בתוכניות ניטור כדי לעקוב אחר גודלי הקבצים ולהגדיל קבצים מראש. הדבר יסייע במניעת פיצול ויאפשר לך להעביר פעילויות תחזוקה אלה לשעות שאינן שעות שיא.
  • מנהל מסד נתונים (DBA) מוסמך חייב לבדוק בקפידה את השימוש ב- AutoShrink ו- autogrow; אין להשאיר אותם ללא ניהול.
  • תוספת autogrow חייבת להיות מספיק גדולה כדי למנוע את ירידות הביצועים שצוינו בסעיף הקודם. הערך המדויק שבו יש להשתמש בהגדרת התצורה והבחירה אם לבטא את הגידול כאחוז או כגודל ספציפי ב- MB תלויים בגורמים רבים בסביבה שלך. כלל אצבע שבו תוכל להשתמש לצורך בדיקה הוא לקבוע את הגדרת autogrow לגודל של כשמינית מגודל הקובץ.
  • הפעל את ההגדרה <MAXSIZE> עבור כל קובץ כדי למנוע מכל קובץ לגדול עד לנקודה שבה הוא משתמש בכל שטח הדיסק הזמין.
  • שמור שגודל הטרנזקציות יהיה קטן ככל האפשר כדי למנוע גידול לא מתוכנן של הקובץ.

מדוע עליי לדאוג בנוגע לשטח הדיסק אם הגדרות הגודל נקבעות באופן אוטומטי?

  • ההגדרה autogrow לא יכולה להגדיל את מסד הנתונים מעבר למגבלות שטח הדיסק הזמין בכוננים שעבורם הקבצים מוגדרים. לכן, אם אתה מסתמך על הפונקציונליות של autogrow כדי לקבוע את גודל מסדי הנתונים שלך, עדיין עליך לבדוק באופן בלתי תלוי את שטח הדיסק הקשיח הזמין. ההגדרה autogrow מוגבלת גם על-ידי הפרמטר MAXSIZE שתבחר עבור כל קובץ. כדי להקטין את האפשרות לניצול מלא של השטח, תוכל לעקוב אחר מונה צג הביצועים SQL Server: Databases Object :Data File(s) Size (KB) ולהגדיר התראה למצב שבו מסד הנתונים מגיע לגודל מסוים.
  • גידול לא מתוכנן של קבצי נתונים או קבצי יומן רישום יכול לצרוך שטח הדרוש ליישומים אחרים ועלול לגרום ליישומים אחרים אלה להיתקל בבעיות.
  • תוספת הגידול של יומן הטרנזקציות חייבת להיות מספיק גדולה כדי לעמוד בצרכים של יחידות הטרנזקציות שלך. גם כאשר האפשרות autogrow מופעלת, ייתכן שתוצג הודעה המציינת כי יומן הטרנזקציות מלא, אם אין באפשרותו לגדול מספיק מהר כדי לעמוד בצרכים של השאילתה.
  • SQL Server לא בודק בקביעות מסדי נתונים שהגיעו לסף המוגדר עבור autoshrink. במקום זאת, הוא בודק במסדי הנתונים הזמינים ומאתר את מסד הנתונים הראשון שמוגדר ל- autoshrink. מסד נתונים זה נבדק ובעת הצורך מופעל עליו כיווץ. לאחר מכן, מתבצעת המתנה של כמה דקות לפני בדיקת מסד הנתונים הבא שמוגדר עבור autoshrink. במילים אחרות, SQL Server לא בודק את כל מסדי הנתונים בו-זמנית ומכווץ את כולם בו-זמנית. הוא עובר בין מסדי הנתונים בצורה מעגלית כדי לפזר את העומס על-פני פרק זמן כלשהו. לכן, בהתאם לכמות מסדי הנתונים במופע מסוים של SQL Server שהגדרת ל- autoshrink, עשויות לחלוף כמה שעות מרגע שמסד הנתונים הגיע לסף ועד לכיווצו בפועל.

מידע נוסף

למידע נוסף על אופן ההגדלה והכיווץ של קבצי מסדי נתונים וקבצי יומן רישום, לחץ על מספרי המאמרים הבאים כדי להציגם מתוך מאגר הידע Microsoft Knowledge Base:
256650 כיצד לכווץ את יומן הטרנזקציות של SQL Server 7.0 (ייתכן שקישור זה מפנה לתוכן שחלק ממנו או כולו מופיע באנגלית)
272318 כיווץ יומן הטרנזקציות ב- SQL Server 2000 עם DBCC SHRINKFILE (ייתכן שקישור זה מפנה לתוכן שחלק ממנו או כולו מופיע באנגלית)
317375 יומן טרנזקציות גדל באופן בלתי צפוי או מתמלא במחשב שבו פועל SQL Server (ייתכן שקישור זה מפנה לתוכן שחלק ממנו או כולו מופיע באנגלית)
247751 באג: תוכנית לתחזוקת מסד נתונים לא מכווצת את מסד הנתונים (ייתכן שקישור זה מפנה לתוכן שחלק ממנו או כולו מופיע באנגלית)
305635 שגיאת זמן קצוב מתרחשת כאשר מסד נתונים מתרחב באופן אוטומטי (ייתכן שקישור זה מפנה לתוכן שחלק ממנו או כולו מופיע באנגלית)
949523 ההשהיה של שכפול טרנזקציות גבוהה ב- SQL Server 2005 כאשר ערך המאפיין "Initial Size" וערך המאפיין Autogrowth קטנים (ייתכן שקישור זה מפנה לתוכן שחלק ממנו או כולו מופיע באנגלית)
לקבלת מידע נוסף על אתחול קובץ מסד נתונים, בקר באתר האינטרנט של Microsoft Developer Network ?(MSDN) בכתובת:
אתחול קובץ מסד נתונים
לקבלת מידע נוסף אודות הפעלת אתחול קובץ מיידי, בקר באתר האינטרנט הבא של Microsoft:
כיצד ומדוע להפעיל אתחול קובץ מיידי
לקבלת מידע נוסף אודות הארכיטקטורה הפיזית של יומן טרנזקציות, בקר באתר האינטרנט הבא של MSDN:
הארכיטקטורה הפיזית של יומן הטרנזקציות

המדריך המקוון SQL Server Books Online; נושאים: "Transaction Log Physical Architecture" (הארכיטקטורה הפיזית של יומן טרנזקציות) ; "Shrinking the Transaction Log" (כיווץ יומן הטרנזקציות)

מאפיינים

Article ID: 315512 - Last Review: שבת 17 ספטמבר 2011 - Revision: 3.0
המידע במאמר זה חל על:
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Workgroup Edition
מילות מפתח 
kbsqlmanagementtools kbinfo KB315512

ספק משוב

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com