תוכניות תחזוקה ל-SQL Server: אינדקסים, סטטיסטיקות וגיבויים אוטומטיים

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

היכולות שלנו:

שאלות נפוצות

העבודות האחרונות

  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1359
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1330
  • עיצוב לוגו לחברת B2B Advance
    עיצוב לוגו לחברת B2B Advance
    776
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1077
  • פיתוח לוגו חברת AIDER
    פיתוח לוגו חברת AIDER
    1022
  • פיתוח CRM עבור Chasseurs
    פיתוח CRM עבור Chasseurs
    1113

תארו לעצמכם: לאחר שנה של פעילות ללא תחזוקה, SQL Server שלכם הופך למערכת איטית. זמני ביצוע של דוחות שפעם ארכו אלפיות שנייה גדלים לעשרות שניות. פיצול אינדקסים עולה על 50%, נתונים סטטיסטיים מתיישנים — האופטימייזר בוחר תוכניות לא אופטימליות. קובץ היומן (transaction log) תופח לעשרות גיגה-בייט, ובדיקות שלמות מעולם לא בוצעו. אנו פותרים בעיות אלה באופן מקיף: אנו מגדירים תחזוקת SQL אוטומטית השומרת על ביצועים ואמינות ללא מעורבותכם. המומחים המוסמכים שלנו ל-SQL Server עם ניסיון של 10+ שנים יישמו פתרונות כאלה על 100+ שרתים, כולל מערכות OLTP בעומס גבוה, תוך הבטחת פעולה אמינה.

ארבעה תהליכי מפתח — בנייה מחדש/ארגון מחדש של אינדקסים (SQL index rebuild/reorganize), עדכון נתונים סטטיסטיים (SQL statistics update), בדיקת שלמות (DBCC CHECKDB) וסבב גיבוי (SQL backup rotation) — חייבים לפעול לפי לוח זמנים. בלעדיהם, מסד הנתונים מתדרדר: פיצול מעל 30% מאט את מהירות השאילתות בעד 40%, ונתונים סטטיסטיים מיושנים יכולים להגדיל את זמן הביצוע פי עשרה. סקריפטים של T-SQL מבצעים משימות אלה פי 2 מהר יותר מתוכניות גרפיות רגילות, ומפחיתים את הפיצול בעוד 40%.

אילו משימות תחזוקה פותרות

  • בנייה מחדש וארגון מחדש של אינדקסים — פיצול >30% גורם לפעולות קלט/פלט נוספות ולהידרדרות ביצועים. הסקריפט בוחר אוטומטית בין ארגון מחדש לבנייה מחדש.
  • עדכון נתונים סטטיסטיים — ללא נתונים סטטיסטיים עדכניים, האופטימייזר בוחר תוכניות לא אופטימליות; זמן ביצוע השאילתה יכול לגדול פי 10. אנו מעדכנים רק אובייקטים ששונו.
  • בדיקת שלמות (DBCC CHECKDB) — מזהה שחיתות בדפים לפני שהיא הופכת לבעיה. אנו מריצים אותה מדי שבוע בלילה.
  • גיבויים עם סבב — מלא, דיפרנציאלי, יומן עסקאות עם הסרת קבצים ישנים. שמירה בין 2 ל-30 ימים בהתאם לקריטיות. RPO אופייני הוא 15 דקות.

איזו שיטה: GUI או T-SQL?

תוכניות תחזוקה מ-SSMS GUI הן התחלה מהירה אך שברירית — לחיצה לא זהירה אחת יכולה לשבור את התוכנית, ובקרת גרסאות ב-Git בלתי אפשרית. עבור סביבות רציניות, אנו משתמשים ב-SQL Agent Jobs עם T-SQL. זה נותן שליטה מלאה, תיעוד ויכולת שחזור.

קריטריון תוכניות תחזוקה (GUI) T-SQL + Agent Jobs
קלות היישום גבוהה בינונית
גמישות תצורה נמוכה גבוהה
בקרת גרסאות בלתי אפשרית כן (Git)
תיעוד (לוגים) מוגבל מלא (טבלה)
עמידות לשגיאות נמוכה גבוהה
זמן תחזוקה בסיסי מופחת בעד 30%

מדוע Ola Hallengren הפך לסטנדרט

הסטנדרט דה-פקטו לתחזוקת SQL Server הוא Ola Hallengren

פתרון התחזוקה של SQL Server מאת Ola Hallengren [https://ola.hallengren.com]

-- Обслуживание индексов: reorganize при 10-30% фрагментации, rebuild при >30%
EXECUTE dbo.IndexOptimize
    @Databases = 'USER_DATABASES',
    @FragmentationLow = NULL,
    @FragmentationMedium = 'INDEX_REORGANIZE',
    @FragmentationHigh = 'INDEX_REBUILD_ONLINE,INDEX_REBUILD_OFFLINE',
    @FragmentationLevel1 = 10,
    @FragmentationLevel2 = 30,
    @MinNumberOfPages = 1000,
    @UpdateStatistics = 'ALL',
    @OnlyModifiedStatistics = 'Y',
    @LogToTable = 'Y';

-- Проверка целостности (запускать раз в неделю, ночью)
EXECUTE dbo.DatabaseIntegrityCheck
    @Databases = 'USER_DATABASES',
    @CheckCommands = 'CHECKDB',
    @LogToTable = 'Y';

כיצד אנו עושים זאת: תהליך שלב-אחר-שלב

  1. ניתוח — בדיקת פיצול, נתונים סטטיסטיים, גיבויים, גודל יומן. הערכת SLA ונקודת שחזור.
  2. עיצוב לוח זמנים — הגדרת חלונות תחזוקה, תדירות משימות, שמירת גיבויים. התחשבות ב-Always On.
  3. יישום — פריסת Ola Hallengren, כוונון פרמטרים לסביבתכם. יצירת Agent Jobs עם התראות על כשלים.
  4. בדיקות — הרצה בסביבת בדיקות, סקירת לוגים וביצועים. אימות יכולת שחזור גיבויים.
  5. פריסה וניטור — מעבר לייצור, הגדרת התראות בדוא"ל או בטלגרם. מתן גישה ללוגים ודוחות.

הגדרות מומלצות לעומסי עבודה שונים

סוג עומס עבודה תדירות תחזוקה הערות
OLTP פעם בשבוע בנייה מחדש של אינדקסים ב->30%, נתונים סטטיסטיים יומית
OLAP פעם בחודש בנייה מחדש מלאה, נתונים סטטיסטיים לאחר טעינת נתונים
מעורב כל 5 ימים סף פיצול אדפטיבי
תצורה לדוגמה למערכת OLTP פיצול >30%: בנייה מחדש, 10-30%: ארגון מחדש, <1%: דילוג. נתונים סטטיסטיים מתעדכנים רק עבור אובייקטים ששונו. גיבויים: מלא יומי, דיפרנציאלי כל 6 שעות, יומן כל 15 דקות.

מה כלול בעבודה

  • התקנת תוכנית תחזוקה מלאה ומפתח ביום אחד. עלות החל מ-$500, בדרך כלל $1200 עבור סביבות מורכבות.
  • תיעוד המתאר כל Job, לוחות זמנים ופרמטרים.
  • הדרכה לצוות שלכם: כיצד לבדוק לוגים, לשחזר גיבויים, לשנות לוחות זמנים.
  • תמיכה לאחר הפריסה: חודש אחד של סיוע באירועים.

טעויות נפוצות בהתקנה עצמית

  • בנייה מחדש תכופה מדי של אינדקסים — גורמת לעומס מיותר. השתמשו בספי פיצול ובספירת עמודים מינימלית (1000).
  • היעדר בדיקות שלמות — ייתכן שתלמדו על שחיתות רק במהלך שחזור. DBCC CHECKDB חודשי מפחית סיכון ב-99%.
  • סבב יומן שגוי — יומן העסקאות יכול למלא את הדיסק. אנו הופכים את קיצוץ היומן לאוטומטי לאחר הגיבוי.

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