שואל
full text search maintenance

שאלה
-
אני מתחיל לעבוד עכשיו עם FTS.
CHANGE_TRACKING = AUTO
SQL Server, Standard, 2008R2-2016
כמעט בשום מקום ברשת וגם לא ב BOL, לא כתוב מתי יש לבצע REBUILD ומתי יש לבצע REORGANIZE.
יש פה ושם כל מיני כללי אצבע שמעל ל 30 פרגמנטים יש לבצע REORGANIZE. על REBUILD, מתי ולמה, לא מצאתי בשום מקום.
יש למישהו איזה ניסיון עם העיניין? ידע? הכוונה לכלל אצבע כלשהו?
תודה...
- נערך על-ידי VR-46 יום שלישי 28 יוני 2016 11:28
כל התגובות
-
אהלן, ניראה לי שיש בילבול בין אינדקס של FTS לבין אינדקס רגיל B-Tree. כללי האצבע שאתה מזכיר קשורים לאינדקסים רגילים ולערך של avg_fragmentation_in_percent שמתקבל בשאילתה הבאה למשל:
-- Find the average fragmentation percentage of all indexes -- in the HumanResources.Employee table. SELECT a.index_id, name, avg_fragmentation_in_percent FROM sys.dm_db_index_physical_stats (DB_ID(N'AdventureWorks2012'), OBJECT_ID(N'HumanResources.Employee'), NULL, NULL, NULL) AS a JOIN sys.indexes AS b ON a.object_id = b.object_id AND a.index_id = b.index_id; GO
* יש מאמרים טובים מאוד באינטרנט בנושא אינדקסים רגילים שכדאי לקרוא.
אינדקס של FTS עובד בצורה שונה לחלוטין על ידי איכלוס (population) של טבלת האינדקס.
אנחנו יכולים לבצע REORGANIZE או REBUILD לקטלוג (CATALOG) ולא לאינדקס. REORGANIZE מאחד את כל האינדקסים שנוצרו בקטלוג ולכן יכול למטב ולשפר את העבודה (ולחסוך זכרון). כנ"ל לגבי REBUILD של הקטלוג שמשפיע על כל האינ דקסים בקטלוג. אם יש צורך אפשר לבטל אינדקס בודד וליצור אותו מחדש.
כל מה שאתה צריך נמצא במאמר הבא: Guidelines for full-text index maintenance
וכמובן כדאי לקרוא את ה BOL הבא:
https://msdn.microsoft.com/en-us/library/ms176095.aspומעל הכל כדאי לעבור על ה BOL הבא!
Improve the Performance of Full-Text Indexes
https://msdn.microsoft.com/en-us/library/ms142560.aspxאם עדיין עולה שאלה, תרגיש חופשי לפרט.
בינתיים אני מעט עסוק ביומיים הקרובים, אני צריך לעבוד על ההרצאה לפגישת קבוצת ה SQL ביום שני :-)
Ronen Ariely
[Personal Site] [Blog] [Facebook] [Linkedin] -
קודם כל, תודה על התגובה ועל הקישורים.
למה אתה חושב שיש בלבול? לא נאמרה מילה אחת בשאלה שלי על אינדקסים רגילים. גם לא נאמר שאני רוצה לבצע את הפעולה על אינדקס ולא על קטלוג...
על כל המאמרים שנתת פה כבר עברתי ולכן הגעתי לכתיבה פה בפורום כי לא נמצאה תשובה לא ב BOL ולא ברשת (כפי שציינתי).
אני אציין שוב, הדבר היחידי שמצאתי ברשת היה המלצת כלל אצבע שכאשר יש יותר מ 30 (מספר, לא אחוזים) פרגמנטים, יש לבצע REORGANIZE. לגבי REBUILD, אין שום אזכור שאני מצאתי.
אם יש למישהו ניסיון עם זה, אודה לעזרתכם...
תודה
-
אהלן
>> למה אתה חושב שיש בלבול?
אני לא אומר שיש לך בלבול אלא שקיים בלבול, וייתכן שיש קשר בגלל המספרים של ה 30 אחוז שמוזכרים, ובדרך כלל מופיעים במאמרים של אינדקסים רגילים. המספרים בהם אני נתקל הרבה יותר נמוכים (הקישור שהבאתי למשל מדבר על 10%) במקרים של אינדקס FTS בדרך כלל. עם זאת יש לציין שבדרך כלל כאשר מגדירים עבודה ב AUTO, אז רוב האנשים להערכתי כלל לא צריכים לבצע אכלוס ידני על בסיס תכוף קבוע, והם לא עוקבים אחרי הנושא, אלא אם עולה בעיה ספציפית (לכן אולי אין הרבה תיעוד בנושא).
>> הדבר היחידי שמצאתי ברשת היה המלצת כלל אצבע שכאשר יש יותר מ 30 (מספר, לא אחוזים) פרגמנטים, יש לבצע REORGANIZE. לגבי REBUILD
אתה יכול לצרף את מה שמצאתי ברשת שדן ב 30 אחוז עבור אינדקס FTS?
אולי נוכל להתעמת מהמאמר או למוד ממנו.>>גם לא נאמר שאני רוצה לבצע את הפעולה על אינדקס ולא על קטלוג...
חלק ממה שאני כותב בתגובות (כאשר מדובר על תיאוריה) הוא לא רק תשובה ישירה לשאלה אלא מידע לטובת מי שיכנס לשרשור בעתיד, בתקווה שזה יעזור לו (ואולי גם למי ששאל את השאלה). מה גם שאני לא יכול לנחש מה כל אחד יודע ומה התכוון המשורר, ולכן נאלץ להסיק ולנחש לפעמים, או לצרף מידע נוסף שמחדד את הנושא. אני לא טענתי ש"אתה" מדבר על אינדקסים ולא קטלוג , אם כבר רוצים להיות דקדקנים :-) אלא רק נתתי מידע למי שלא יודע, שמדובר בפעולה על קטלוג ולא על האינדקס. דרך אגב גם בעניין הבלבול לא כתבתי שיש לך בלבול אלא "שיש בילבול" (ניסיתי להיות זהיר מאוד בניסוח), ואכן יש בילבול אצל הרבה אנשים, כפי שאני רואה בשאלות בפורומים. הרבה פעמים גם מצרפים לשאלות קישור למאמר שקשור לאינדקס רגיל ושואלים על אינדקס FTS.
>> כי לא נמצאה תשובה לא ב BOL ולא ברשת
אני מניח שאתה צודק :-)
אני לא מכיר תיעוד מסודר על הנושא פרט לקישור שצירפתי (והגעתי אליו דרך גוגל), וגם הוא רק תשובה לשאלה בפורום, ולא מאמר מסודר ומעמיק. אולי הגיע הזמן לכתוב משהו :-)** אני מצטער שלא יכולתי לעזור יותר.
אם תמצא לפנינו משהו יותר מסודר אתה מוזמן לצרף לנו את הקישור.
Ronen Ariely
[Personal Site] [Blog] [Facebook] [Linkedin]
- נערך על-ידי pituachMVP, Moderator יום ראשון 03 יולי 2016 11:26
-
שוב תודה על התגובה. הבנתי מאיפה מגיעה ההרחבה בנושא האינדקסים הרגילים.
לגופו של עניין:
לגבי ה 10% שיש במאמר, זה על פי ניסיון שלהם להביא איזו שהיא תוכנית (שים לב שאצלם יש כמה אינדקסים על אותו הקטלוג, אני משתמש רק באינדקס אחד פר קטלוג) לתחזוקה.
לגבי ה 30 פרגמנטים, להל"ן כמה קישורים (שוב, זה לא מגיע ממיקרוסופט, מהם אין שום תיעוד להמלצה כלשהיא שאני מצאתי):
http://www.sqlservercentral.com/Forums/Topic1117698-1550-1.aspx
http://dba.stackexchange.com/questions/42155/reorganize-full-text-catalog-is-offline-or-online
https://www.sql-programmers.com/identifying-full-text-index-fragmentation-.aspx
כל הקישורים הללו מדברים על REORGANIZE. בשום מקום לא מצאתי המלצה מתי לבצע REBUILD. מכיוון שישנה האופציה לבצע REBUILD אני מאמין שישנה גם לוגיקה מאחוריה. לשאלה מתי איך ולמה לבצע אותה, עדיין לא מצאתי תשובה...
שוב תודה
-
+5 על הקישורים והמאמץ למצוא תשובה ברשת, אבל עברתי על הקישורים בצורה מהירה ולא ראיתי אף אחד שמושך אותי להתייחס אליו. לא ראיתי בדיקות (השוואות) שנעשו אלא רק טענות. הקישור היחיד שאני מצאתי שעושה בדיקה מקיפה לנושא ומציג גרפים מסודרים הוא זה ששמתי בהתחלה (לצערי זה קישור ישן וחלק ממה שהוא מפנה אליו לא זמין). האנשים שלוקחים חלק בשרשור מוכרים לי כאנשים רציניים בתחום. ברור שזה מקרה ספיצי שלהם (כמה אינדקסים על אותו קטלוג לפחות במערכות מורכבות יותר זה נורמה). דרך אגב אני לא אתפלא אם המקור של המספרים בקישורים הוא בבלבול שהזכרתי קודם :-), אבל כמובן שאני לא יודע. בלי בדיקות או לפחות נתונים של תוצאות בדיקות קצת קשה לי להתייחס לטענה.
בכל מקרה אין לי תשובה של כללי אצבע, מכיוון שכללי אצבע מחייבים הרבה יותר בדיקה רוחבית על מספר רב של מערכות שונות ובדרך כלל כללי אצבע טובים מגיעים מסיכום דיונים של מספר רב של אנשי מקצוע (שביצעו בדיקות כמותיות). בהחלט ייתכן בעתיד שאני אפתח דיון בנושא כזה מול מספר חברים או מול קבוצת MVP-ים כדי לקבל התרשמות יותר רוחבית. כרגע אין לי תשובה של מספר אלא רק מה שמתאים אצלי (לקוחות) - במערכות הגדולות המספרים מאוד קטנים בסביבות ה 15%, במערכות קטנות אין בכלל צורך ועבודה אוטומטית מבצעת טיפול נהדר במידע (אפשר לבדוק בתחזוקה השוטפת מפעם לפעם מה המצב והלחליט ידנית).
אולי זה זמן טוב לשמוע מספרים שאנשים אחרים משתמשים ואם יש קצת נתוני בדיקות או לפחות אמירה שהם ביצעו בדיקה... וכך נוכל לקבוע כלל אצבע :-)
Ronen Ariely
[Personal Site] [Blog] [Facebook] [Linkedin]
- נערך על-ידי pituachMVP, Moderator יום ראשון 03 יולי 2016 17:06
-