חל על
SQL Server 2008 Service Pack 3 SQL Server 2008 Developer SQL Server 2008 Enterprise SQL Server 2008 Standard SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2008 R2 Service Pack 2 SQL Server 2008 R2 Developer SQL Server 2008 R2 Enterprise SQL Server 2008 R2 Standard SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Standard

תופעות

נניח שיש לך טבלה המכילה עמודת אובייקט גדול (LOB) ב-Microsoft SQL Server 2008, SQL Server 2008 R2, SQL Server 2012 או SQL Server 2014. כאשר אתה מעדכן את עמודת LOB בגודל קטן יותר של נתוני LOB ומנסה לדרוש מעצמך את השטח שאינו בשימוש באמצעות השיטות הבאות:

  • DBCC SHRINKDATABASE / DBCC SHRINKFILE

  • לשנות את הסדר של אינדקס מחדש עם (LOB_COMPACTION = ON)

במצב זה, אין אפשרות להחזיר את השטח שאינו בשימוש.

כל עדכון מצטבר חדש עבור SQL Server מכיל את כל התיקונים החמים ואת כל תיקוני האבטחה שנכללו בעדכון המצטבר הקודם. עיין בעדכונים המצטברים האחרונים עבור SQL Server:

פתרון

כדי לעקוף בעיה זו, השתמש בפתרונות הבאים:

  • יצא את כל השורות לטבלה חדשה והעבר את השורות לאחור. פעולה זו מארגנת מחדש את נתוני ה-LOB ומשחררים את השטח שאינו בשימוש.

  • השתמש ב-DBCC SHRINKFILE עם האפשרות EMPTYFILE כדי להעביר את כל הנתונים לקובץ נתונים חדש שנוסף ולאחר מכן להסיר קובץ נתונים ישן. פעולה זו מארגנת מחדש את נתוני ה-LOB שם על-ידי שחרור השטח שאינו בשימוש.

מידע נוסף

הדוגמה הבאה מציגה את השטח שאינו בשימוש באמצעות הפקודה TSQL sp_spaceused ' table_name ' לפני ואחרי העדכון של עמודת ה-lob בגודל קטן יותר של נתוני LOB: לפני העדכון:

שם

שורות

שמורות

נתונים

index_size

נוצל

table_name

1000

261072 KB

261056 KB

16 KB

0 KB

לאחר העדכון:

שם

שורות

שמורות

נתונים

index_size

נוצל

table_name

1000

261072 KB

199672 KB

16 KB

61384 KB

מצב

Microsoft אישרה שזוהי בעיה במוצרי Microsoft המופיעים בסעיף "חל על".

זקוק לעזרה נוספת?

מעוניין באפשרויות נוספות?

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