Microsoft מפיצה תיקונים SQL Server Microsoft 2008 כקובץ אחד הניתן להורדה. מאחר התיקונים הם מצטברים, כל מהדורה חדשה מכילה את כל התיקונים החמים ואת כל תיקוני האבטחה שהיו כלולים במהדורה הקודמת של SQL Server 2008. Microsoft מפיצה את Microsoft SQL Server 2008 או SQL Server 2008 R2 כקובץ אחד הניתן להורדה. מאחר התיקונים הם מצטברים, כל מהדורה חדשה מכילה את כל התיקונים החמים ואת כל תיקוני האבטחה שהיו כלולים במהדורה הקודמת של SQL Server 2008 או SQL Server 2008 R2 תיקון.
סימפטומים
בחן את התרחיש הבא:
יש לך שאילתת חיפוש טקסט מלא המשתמשת בפונקציה CONTAINSTABLE יחד עם פרדיקאטים רבים של OR ו- AND בתנאי ב- Microsoft SQL Server 2008 או ב- SQL Server 2008 R2. לדוגמה, יש לך את 50 פעולות AND הבאות: Declare @Keywords varchar(4000) = NULL
הגדר @Keywords= N'((((((((((((((((((((((((((((((((((((((((((((((((((((
("TOKarchitect" OR "אדריכלי")
AND ("TOKengineer" OR "engineer"))
AND "gineer") AND ("TOKmechanical" OR "מכני"))
AND ("TOKengineer" OR "Engineering"))
AND ("TOKelectronic" OR "Electronics")) AND ("TOKengineer" OR "Engineer")) AND ("TOKelectronic" OR "Electronics")) AND ("TOKengineer" OR "Engineering")) AND ("TOKelectric" OR "Electrical")) AND ("TOKengineer" OR "Engineer")) AND ("TOKelectric" OR "Electrical")) AND ("TOKengineer" OR "Engineering")) AND ("TOKcontrol" OR "Control")) AND ("TOKsystem" OR "Systems")) AND ("TOKengineer" OR "Engineer")) AND ("TOKproject" OR "Project")) AND ("TOKmanager" OR "Manager")) AND ("TOKengineer" OR "Engineering")) AND "Scheme") AND ("TOKmanufacture" OR "Manufacturing")) AND ("TOKengineer" OR "Engineer")) AND ("TOKmetallurgist" OR "Metallurgy")) AND ("TOKmetallurgist" OR "Metallurgist")) AND ("TOKprocess" OR "Process")) AND ("TOKTechnology" OR "OR "TOKTechnology" OR Technology")) AND ("TOKproduct" OR "Production")) AND ("TOKengineer" OR "Engineer")) AND ("TOKQuality" OR "Quality")) AND ("TOKengineer" OR "Engineer")) AND ("TOKQuality" OR "Quality")) AND ("TOKcontrol" OR "Control")) AND ("TOKQuality" OR "Quality")) AND ("TOKengineer" OR "Engineer")) AND "Mechatronics") AND ("TOKcivil" OR "Civil")) AND ("TOKengineer" OR "Engineering")) AND ("TOKdesign" OR "Civil")) AND ("TOKengineer" OR "Engineering")) AND ("TOKdesign" OR "Design")) AND ("TOKengineer" OR "Engineering")) AND ("TOKdesign" OR "Design")) AND ("TOKengineer" OR "Engineer")) AND ("TOKgraduate" OR "Graduate")) AND ("TOKengineer" OR "Engineer")) AND ("TOKgraduate" OR "Graduate")) AND ("TOKengineer" OR "engineering")) AND ("TOKengineer" OR "Engineering")) AND ("TOKgraduate" OR "בוגר")) AND ") ANDNOT (") AND ("TOKRecruitment" OR "Recruitment")) AND ("TOKconsultant" OR "consultant")) AND ("TOKtrainee" OR "trainee")) AND ("TOKRecruitment" OR "recruitment"))'select * from CONTAINSTABLE(test_table, *, @keywords, 1000)
הפעלת השאילתה.
בתרחיש זה, עלולה להתרחש שגיאת "מתזמן שאינו מניבה". בנוסף, קובץ dump מצומצם נוצר בתיקיה יומן רישום יישומים של SQL Server 2008 או SQL Server 2008 R2, והשגיאה הבאה נרשמת בקובץ יומן הרישום SQL Server שגיאות:
הערה
<Time Stamp> Server using 'dbghelp.dll' version '4.0.5'
<Time Stamp> Server **Unable to get thread context for spid 0
<Time Stamp> Server *
*******************************************************************************
<Time Stamp> Server *
<Time Stamp> Server * BEGIN STACK DUMP:
<Time Stamp> Server * <Time> spid <SPID>
<Time Stamp> Server *
<Time Stamp> Server * מתזמן ללא תשואה
<Time Stamp> Server *
<Time Stamp> Server *
*******************************************************************************
<חתימת ערימה> של שרת חותמת זמן עבור קובץ ה- Dump 0x000000000000030D
<תהליך Dump חיצוני> של שרת חותמות זמן מחזיר קוד 0x20000001. תהליך Dump חיצוני לא החזיר שגיאות.
<Time Stamp> Server Process 0:0:0 (0xf94) עובד 0x00000000817481A0 נראה שאינו מניבה ב- Scheduler 0. זמן יצירת הליך משנה: 12925321224306. הליך משנה CPU בשימוש: ליבה 62 אלפיות שניה, משתמש 75187 אלפיות שניה. ניצול התהליך ב- 98%. המערכת אינה פעילה ב- 0%. מרווח זמן: 76403 אלפיות שניה.
<Time Stamp> Server Process 0:0:0 (0xf94) עובד 0x00000000817481A0 נראה שאינו מניבה ב- Scheduler 0. זמן יצירת הליך משנה: 12925321224306. קירוב CPU בשימוש הליך משנה: ליבה 125 אלפיות שניה, משתמש 145250 אלפיות שניה. ניצול התהליך ב- 98%. המערכת אינה פעילה ב- 0%. מרווח זמן: 148417 אלפיות שניה
<Time Stamp> Server Process 0:0:0 (0xf94) עובד 0x00000000817481A0 נראה שאינו מניבה ב- Scheduler 0. זמן יצירת הליך משנה: 12925321224306. הליך משנה CPU בשימוש: ליבה 171 אלפיות שניה, משתמש 205515 אלפיות שניה. ניצול התהליך ב- 98%. המערכת אינה פעילה ב- 0%. מרווח זמן: 209729 אלפיות שניה
<Time Stamp> Server Process 0:0:0 (0xf94) עובד 0x00000000817481A0 נראה שאינו מניבה ב- Scheduler 0. זמן יצירת הליך משנה: 12925321224306. הליך משנה CPU בשימוש: ליבה 218 אלפיות שניה, משתמש 266343 אלפיות שניה. ניצול התהליך ב- 98%. המערכת אינה פעילה ב- 0%. מרווח זמן: 271588 אלפיות שניה
<Time Stamp> Server Process 0:0:0 (0xf94) עובד 0x00000000817481A0 נראה שאינו מניבה ב- Scheduler 0. זמן יצירת הליך משנה: 12925321224306. הליך משנה CPU בשימוש: ליבה 234 אלפיות שניה, משתמש 325156 ms. ניצול התהליך ב- 97%. המערכת אינה פעילה ב- 0%. מרווח זמן: 333671 אלפיות שניה
<Time Stamp> Server Process 0:0:0 (0xf94) עובד 0x00000000817481A0 נראה שאינו מניבה ב- Scheduler 0. זמן יצירת הליך משנה: 12925321224306. הליך משנה CPU בשימוש: ליבה 296 אלפיות שניה, משתמש 386000 אלפיות שניה. ניצול התהליך ב- 97%. המערכת אינה פעילה ב- 0%. מרווח זמן: 396370 אלפיות שניה.
גורם
בעיה זו מתרחשת מאחר SQL Server 2008 או SQL Server 2008 R2 אינו משחרר מתזמן כראוי.
פתרון
מידע עדכון מצטבר
SQL Server 2008 R2
התיקון לבעיה זו פורסם לראשונה בעדכון מצטבר 5. לקבלת מידע נוסף אודות האופן שבו ניתן להשיג את חבילת העדכון המצטבר עבור SQL Server 2008 R2, לחץ על מספר המאמר הבא כדי להציג את המאמר מתוך מאגר הידע Microsoft Knowledge Base:
2438347 עדכון מצטבר 5 עבור SQL Server 2008 R2 הערה מאחר גירסאות ה- Build הם מצטברים, כל פרסום תיקון חדש מכיל את כל התיקונים החמים ואת כל תיקוני האבטחה שנכללו עם מהדורת התיקון הקודמת של SQL Server 2008 R2. מומלץ לשקול להחיל את מהדורת התיקון העדכנית ביותר המכילה תיקון חם זה. לקבלת מידע נוסף, לחץ על מספר המאמר הבא כדי להציג את המאמר מתוך מאגר הידע Microsoft Knowledge Base:
981356 גירסאות build SQL Server 2008 R2 שהופצו לאחר SQL Server 2008 R2 הופץ
SQL Server Service Pack 1 של 2008
התיקון לבעיה זו הופץ לראשונה בעדכון מצטבר 10 עבור SQL Server Service Pack 1 2008. לקבלת מידע נוסף אודות חבילת עדכון מצטבר זה, לחץ על מספר המאמר הבא כדי להציג את המאמר מתוך מאגר הידע Microsoft Knowledge Base:
2279604 חבילת העדכון המצטבר 10 עבור SQL Server 2008 Service Pack 1Note מאחר גירסאות ה- Build הם מצטברים, כל מהדורה תיקון חדשה מכילה את כל התיקונים החמים ואת כל תיקוני האבטחה שנכללו במהדורת התיקון הקודמת של SQL Server 2008. Microsoft ממליצה לשקול להחיל את מהדורת התיקון העדכנית ביותר המכילה תיקון חם זה. לקבלת מידע נוסף, לחץ על מספר המאמר הבא כדי להציג את המאמר מתוך מאגר הידע Microsoft Knowledge Base:
970365 גירסאות ה- Build של SQL Server 2008 שפורסמו לאחר ש- SQL Server 2008 Service Pack 1 הופץ, תיקונים חמים של Microsoft SQL Server 2008 נוצרים עבור ערכות service pack ספציפיות של SQL Server. עליך להחיל תיקון חם SQL Server 2008 Service Pack 1 על התקנה של SQL Server 2008 Service Pack 1. כברירת מחדל, כל תיקון חם שסופק SQL Server Service Pack כלול ב- service pack SQL Server service pack.
SQL Server Service Pack 2 2008
התיקון לבעיה זו הופץ לראשונה בעדכון מצטבר 1 עבור SQL Server 2008 Service Pack 2. לקבלת מידע נוסף אודות חבילת עדכון מצטבר זה, לחץ על מספר המאמר הבא כדי להציג את המאמר מתוך מאגר הידע Microsoft Knowledge Base:
2289254 עדכון מצטבר 1 עבור SQL Server 2008 Service Pack 2Note מאחר וגירסאות ה- Build הן מצטברות, כל מהדורה חדשה של תיקון מכילה את כל התיקונים החמים ואת כל תיקוני האבטחה שנכללו במהדורה הקודמת של SQL Server 2008. מומלץ לשקול להחיל את מהדורת התיקון העדכנית ביותר המכילה תיקון חם זה. לקבלת מידע נוסף, לחץ על מספר המאמר הבא כדי להציג את המאמר מתוך מאגר הידע Microsoft Knowledge Base:
2402659 גירסאות ה- Build SQL Server 2008 שהופצו לאחר ש- SQL Server 2008 Service Pack 2 הופץ
פתרון
כדי לעקוף בעיה זו, השתמש באוצר מילים של חיפוש טקסט מלא כדי להגדיר את המילים הנרדפות של ה- Predicate.
לשם כך, השתמש בפונקציה FORMSOF יחד עם הערך THESAURUS ולאחר מכן הוסף את כל מילות המפתח כפרמטרים.
עבור הדוגמה המתוארת בסעיף "מאפייני הבעיה", להלן גירסה מעודכנת של השאילתה לדוגמה: Select * from test_table where Contains(*,'FORMSOF (THESAURUS,"architectural","engineer","Mechanical","Engineering","Electronics","Engineer","Electrical","Control","Systems","Project ","Manager","Manufacturing","Metallurgy","Metallurgist","Process","Design","Technology","Production","Quality","Control","Civil","Graduate","Recruitment","consultant","trainee" ,"גיוס")')
מצב
Microsoft אישרה שזוהי בעיה במוצרי Microsoft המפורטים בסעיף "חל על".
חומרי עזר
לקבלת מידע נוסף אודות הפונקציה CONTAINSTABLE, בקר באתר האינטרנט הבא של Microsoft Developer Network (MSDN):
מידע כללי אודות הפונקציה CONTAINSTABLE לקבלת מידע נוסף אודות מודל מתן שירות מצטבר עבור SQL Server, לחץ על מספר המאמר הבא כדי להציג את המאמר מתוך מאגר הידע Microsoft Knowledge Base:
935897 קיים מודל שירות מצטבר זמין מהצוות SQL Server לספק תיקונים חמים עבור בעיות שדווחו
לקבלת מידע נוסף אודות סכימת מתן השמות SQL Server עדכונים, לחץ על מספר המאמר הבא כדי להציג את המאמר מתוך מאגר הידע Microsoft Knowledge Base:
822499 סכימת מתן שמות חדשה עבור חבילות עדכוני SQL Server Microsoftלקבלת מידע נוסף אודות מינויי עדכוני תוכנה, לחץ על מספר המאמר הבא כדי להציג את המאמר מתוך מאגר הידע Microsoft Knowledge Base:
824684 תיאור המינוח הרגיל המשמש לתיאור עדכוני התוכנה של Microsoft