דף הבית » איך ל » סקריפט אצווה לעשות מסד נתונים SQL Server תחזוקה פשוט

    סקריפט אצווה לעשות מסד נתונים SQL Server תחזוקה פשוט

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

    דחיסת / הקטנה של מסד נתונים [/ Compact]

    ישנם מספר גורמים אשר לתרום את שטח דיסק פיזי מסד נתונים SQL Server משתמש. רק כדי שם כמה:

    • עם הזמן כמו רשומות מתווספים, נמחקים ומעודכנים, SQL גדל כל הזמן הולך ומתכווץ שולחנות כמו גם יצירת מבני נתונים זמניים לבצע מניפולציות שאילתה. כדי להתאים את צורכי האחסון בדיסק, SQL Server יגדיל את הגודל של מסד הנתונים (בדרך כלל על ידי 10%) לפי הצורך כך גודל הקובץ באתר לא משתנה כל הזמן. אמנם זה אידיאלי עבור ביצועים, זה יכול לגרום לנתק עם שטח אחסון בשימוש, כי אם, למשל, אתה מוסיף מספר רב מאוד של רשומות אשר גורם מסד הנתונים לגדול ולאחר מכן למחוק רשומות אלה, SQL Server לא באופן אוטומטי לתבוע את זה שטח דיסק.
    • אם אתה משתמש במצב השחזור המלא במסדי הנתונים שלך, קובץ יומן העסקאות (LDF) יכול לגדול די גדול, במיוחד במסדי נתונים עם כמות גדולה של עדכונים.

    דחיסת (או צמצום) מסד הנתונים יחזיר שטח דיסק שלא נעשה בו שימוש. עבור מסדי נתונים קטנים (200 MB או פחות) זה בדרך כלל לא יהיה הרבה, אבל עבור מסדי נתונים גדולים (1 GB או יותר) שטח reclaimed עשוי להיות משמעותי.

    Reindexing מסד נתונים [/ Reindex]

    כמו כל הזמן יצירת, עריכה ומחיקה של קבצים יכול להוביל פיצול דיסק, הוספת, עדכון ומחיקת רשומות במסד הנתונים יכול להוביל לפיצול השולחן. התוצאות המעשיות הן אותן פעולות קריאה וכתיבה סובלות מביצועי ביצועים. אמנם לא אנלוגיה מושלמת, reindexing הטבלאות במסד נתונים בעצם defragments אותם. במקרים מסוימים, זה יכול להגדיל באופן משמעותי את מהירות אחזור הנתונים.

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

    אימות שלמות [/ אמת]

    על מנת מאגר כדי להישאר גם פונקציונלי לייצר תוצאות מדויקות, ישנם פריטים שלמות רבים אשר חייב להיות במקום. למרבה המזל, בעיות שלמות פיזית ו / או לוגית אינן נפוצות ביותר, אך מומלץ להשתמש מדי פעם בתהליך אימות האימות על מסדי הנתונים שלך ולסקור את התוצאות.

    כאשר תהליך האימות מופעל באמצעות סקריפט שלנו רק שגיאות מדווחות, ולכן אין חדשות טובות.

    שימוש בסקריפט

    סקריפט אצווה SQLMaint תואם SQL 2005 ומעלה ויש להפעיל במחשב שבו מותקן כלי SQLCMD (מותקן כחלק ההתקנה של SQL Server). מומלץ להוריד את הסקריפט הזה למיקום המוגדר במשתנה PathH של Windows (כלומר C: Windows), כך שניתן בקלות להיקרא כמו כל יישום אחר משורת הפקודה.

    כדי להציג את פרטי העזרה, פשוט הזן:

    SQLMaint /?

    דוגמאות

    כדי להפעיל קומפקטית ולאחר מכן לאמת על מסד הנתונים "MyDB" באמצעות חיבור מהימן:

    SQLMaint MyDB / קומפקטי / אמת

    כדי להפעיל reindex ולאחר מכן קומפקטית על "MyDB" על שם בשם "מיוחד" באמצעות "sa" המשתמש עם הסיסמה "123456":

    SQLMaint MyDB / S :.Special / U: sa / P: 123456 / ריינדקס / קומפקטי

    שימוש מבפנים של סקריפט אצווה

    בעוד סקריפט אצווה SQLMaint ניתן להשתמש כמו יישום משורת הפקודה, כאשר אתה משתמש בו בתוך סקריפט אצווה אחר, זה חייב להיות קדמה עם מילת המפתח CALL.

    לדוגמה, סקריפט זה מפעיל את כל משימות האחזקה בכל מסד נתונים שאינו מערכת בהתקנת ברירת מחדל של SQL Server באמצעות אימות מהימן:

    @ OFFO OFF
    SETLOCAL EnableExtensions
    SET DBList = "% TEMP% DBList.txt"
    SqlCmd -E -h-1 -w 300-Q "הגדרת NoCount ON; SELECT Name מתוך master.dbo.sysDatabases כאשר אין שם ('master', 'model', 'msdb', 'tempdb') ">% DBList%
    עבור / F "אסימוני usebackq = 1" %% i (% DBList%) DO (
    CALL SQLMaint "%% i" / Compact / Reindex / אמת
    ECHO +++++++++++
    )
    אם קיים% DBList% DEL / F / Q% DBList%
    אנדלוקל

    הורד את SQLMaint אצווה סקריפט מ SysadminGeek.com