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

סיכום

Microsoft SQL Server 2005 משתמש במונה ה-CPU של הרזולוציה הגבוהה כדי לספק יכולות תזמון של microsecond. Microsecond מהווה מיליון של שניה (או אלפיות שניה של שניה אחת). עם זאת, ערכי התזמון של SQL Server עשויים להיות שגויים אם אתה משתמש בטכנולוגיות המשנות תדרי CPU. לדוגמה, בעיה זו עלולה להתרחש כאשר אתה משתמש באחת מהטכנולוגיות הבאות:

  • מעבר מעבדים

  • טכנולוגיית AMD Cool'n'Quiet

  • ערכות power שונות

מאמר זה מכיל שיטות ומידע נוסף שיעזרו לך לעקוף בעיה זו.

תופעות

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

סיבה

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

פתרון

מידע אודות service pack

כדי לפתור בעיה זו, השג את ה-service pack העדכני ביותר עבור SQL Server 2005. לקבלת מידע נוסף, לחץ על מספר המאמר הבא כדי להציג את המאמר ב-Microsoft Knowledge Base:

913089 כיצד להשיג את ערכת השירות העדכנית ביותר עבור SQL Server 2005הערה ב-SQL Server 2005 Service Pack 3 ובערכות service pack מאוחרות יותר, חותמת הזמן של המעבד אינה נמצאת בשימוש. גירסאות אלה של SQL Server 2005 משתמשות בשעון עצר מהימן יותר הכולל דיוק מירבי של שניה אחת.

מצב

בעיה זו תוקנה לראשונה ב-SQL Server 2005 Service Pack 3.

פתרון

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

קביעת התצורה של ערכת צריכת החשמל במחשב כדי לאלץ את המעבדים להישאר בתדר המרבי

לשם כך, בצע את השלבים הבאים:

  1. לחץ על התחל, לחץ על הפעלה, הקלד Powercfg. cplולאחר מכן לחץ על אישור.

  2. בתיבת הדו מאפייני Power options , לחץ על תמיד מופעל ברשימה Power ערכות .

  3. לחץ על אישור.

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

מספר CPU

הצהרות להפיכת קירבת מעבד לזמינה

02 Cpu

exec sp_configure ' מסכת קרבה ', 0x00000003GOreconfigureGO

04 Cpu

exec sp_configure ' מסכת קרבה ', 0x0000000FGOreconfigureGO

08 Cpu

exec sp_configure ' מסכת קרבה ', 0x000000FFGOreconfigureGO

16 Cpu

exec sp_configure ' מסכת קרבה ', 0x0000FFFFGOreconfigureGO

Cpu של 32

exec sp_configure ' מסכת קרבה ', 0xFFFFFFFFGOreconfigureGO

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

שימוש בעזרים ובמנהלי התקנים של ספקים חיצוניים כדי לסנכרן תדרי CPU ומוני שעון CPU

במקרים נדירים, מערכת עשויה לדרוש עדכון מהיצרן לפתרון בעיות בתדר CPU. מומלץ לבדוק את המערכת עבור עדכוני ה-BIOS, המיקרו-קוד והקושחה העדכניים ביותר, אם אתה חושד כי ייתכן שבמערכת יש בעיה.

מידע נוסף

Microsoft SQL Server 2000 וגירסאות קודמות של SQL Server משתמשים במנגנוני התזמון של Windows. מנגנוני התזמון משתמשים בערכי דיוק של אלפיות שניה. בדרך כלל, precision זו היא 10 עד 15 אלפיות הבאה. עם זאת, הדיוק עשוי להיות גדול מכפי ש-55 ms. שאילתות SQL Server מושלמו לעתים קרובות בטווח שניה או שmicrosecond זמן של ספרות בודדות. Precision זו דורשת שעון עצר ברזולוציה גבוהה. לכן, גירסאות אלה של SQL Server מדווחות על משך הזמן של כמה שאילתות בתור 0 ms. לכן, קשה לנטר את הביצועים ולכוונן את הביצועים של SQL Server בגירסאות קודמות של SQL Server. SQL Server 2005 משפר את הדיוק באמצעות מונה CPU ברזולוציה גבוהה כדי לספק יכולות תזמון של microsecond. בעת שימוש בטכנולוגיות המפורטות בסעיף ' סיכום ', ערכי התזמון המדווחים עשויים להיות שגויים. בעיה זו עשויה להשפיע על האובייקטים והתכונות הבאים:

  • מעקב אחר אירועים:

    • האירוע ' תשומת לב '

    • אירועים בצומת ' הליכים מאוחסנים '

    • אירועים בצומת TSQL

    • אירועים בצומת ' אובייקטים '

    • אירועים בצומת הטרנזקציות

  • תצוגות ניהול דינאמי:

    • sys.dm_exec_query_stats

    • sys.dm_exec_requests

    • sys.dm_exec_sessions

    • sys.dm_io_pending_io_requests

    • sys.dm_os_ring_buffers

    • sys.dm_os_sys_info

    • sys.dm_io_virtual_file_stats

    • sys.dm_os_wait_stats

  • משפט הזמן של ' הגדרת סטטיסטיקה '

  • טבלת המערכת של sysprocesses

לאחר התקנת SQL Server 2005 Service Pack 2 (SP2), SQL Server מחבר הודעת שגיאה ביומן השגיאות כאשר SQL Server מזהה שטיימרים ברזולוציה גבוהה אינם מסונכרנים בין המעבדים. הודעת השגיאה מציינת שתזמוני הביצועים עשויים שלא להיות מדויקים, ומשתמשים צריכים להשתמש בנתוני ביצועים בזהירות. הטקסט של הודעת השגיאה דומה לאחת מהודעות השגיאה הבאות:

הודעת שגיאה 1

מונה חותמת הזמן של ה-CPU במזהה המתזמן 2 אינו מסונכרן עם יחידות Cpu אחרות.

הודעת שגיאה 2

תדירות חותמת זמן של CPU השתנתה מ-191469 עד 1794177 שנתות לכל שניה. ייעשה שימוש בתדר החדש

SQL Server משתמש בהוראה של ' מונה חותמת זמן אמיתי ' (RDTSC) כדי לרכוש את ספירת השנתות של ה-CPU של 64-bit. באפשרותך לחלק ערך זה לפי תדר ה-CPU כדי להמיר את הערך לערכי אלפיות שניה. וריאציות תזמון עשויות להתרחש כאשר תדירות ה-CPU משתנה או הסחף מתבצע.

מעבר מעבדים

העברת מעבדים מוגדרת כשינוי מכוון בתדר CPU. העברת מעבדים עשויה להיות מוכרת גם בשם אינטל SpeedStep טכנולוגיה או AMD PowerNow! טכנולוגיה. כאשר מתבצעת הקפיצה של ה-CPU, מהירות ה-CPU עשויה להגדיל או להקטין את המרווחים בהפרש של עד 50 MHz כדי לחסוך באנרגיה ולהפחית את תפוקת החום. המעבדים הנמצאים בתוך אותו צומת ללא ממדים של גישת זיכרון (NUMA) אינם מתאימים באופן עצמאי לתדרים. הטבלה הבאה מתארת את האופן שבו שינויים ב-CPU עשויים להשפיע על חישובי תזמון.

פעולה

שנתות RDTSC

שנתות לכל שניה (תדירות)

זמן לשעון קיר

הפעלת אצווה

1

200

0

השלב בתדר כלפי מטה

200

100

1ms

סיום אצווה

500

3ms

סכומים

500

4ms

SQL Server לוכד את שנתות הRDTSC הן ב-start והן ב-end RDTSC קרציות. לאחר מכן, SQL Server מחלק את התקתוקים לפי ערך התדירות. בדוגמה זו, חישובי התזמון הבאים מתרחשים כאשר אתה משתמש בערך תדירות של 200 או 100:

  • Frequency 200: 500/200 = 2.5 ms

  • תדירות 100: 500/100 = 5 ms

אף אחד מחישובי התזמון אינו מתאים לשעון הקיר הממשי של 4 אלפיות הראשונה. אם החישוב נמצא בשימוש ב -RPC: אירוע מעקב שהושלם, עמודות הנתונים משךושעה סיום מדווחות באופן שגוי. ה -RPC: האירוע שהושלם לוכד את שעת ההתחלה של שעון הקיר וספירת השנתות של ה-CPU. כדי לקבל תזמון ברזולוציה גבוהה יותר מאשר ספקי Windows ב-SQL Server 2005, עמודות הנתונים משךושעה סיום במעקב sql server מחושבות באמצעות ספירת השנתות של ה-CPU שחלף. העמודה ' שעת סיום ' מחושבת על-ידי הוספת העמודה ' משך ' לעמודה ' שעת התחלה '. בדוגמה זו, העמודה ' שעת סיום ' מחושבת על-ידי הוספה שגויה של 2.5 ms או 5 אלפיות הראשונה לשעת ההתחלה.

היסחף

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

פעולה

מעבדים מתוזמנים של Windows

מעבד 1 RDTSC

מעבד 2 RDTSC

זמן לשעון קיר

הפעלת אצווה

1

100

1100

0

סיום אצווה

2

900

1900

4 ms

סכומים

4 ms

SQL Server לוכד את שנתות הRDTSC הן בנקודות ההתחלה והן בנקודות הקצה. לאחר מכן, SQL Server מחלק את השנתות של RDTSC לפי ערך התדירות. בדוגמה זו, Windows קבע את הליך המשנה של SQL Server עובד על שתי יחידות Cpu שונות. הליך המשנה של עובד SQL Server שירותים שהאצווה הופעלה תחילה במעבד הראשון (CPU 1). עם זאת, ביצוע האצווה הופסק בשלב מסוים, ו-SQL Server שלח את ביצוע האצווה לתור הממתינה. כאשר SQL Server שלח את הליך המשנה של SQL Server לעובד שמשרות אצווה זו לתור runnable שוב, Windows שיגר את הליך המשנה כך שיפעל ב-CPU השני (CPU 2). הליך המשנה של העובד SQL Server הושלם פועל ב-CPU 2. עקב הסחף של CPU, ערך שנתות הסיום שנלכד מ-CPU 2 היה 1900 במקום 900. באפשרותך להימנע מאופן פעולה זה אם תהפוך את קירבת מעבד SQL Server לזמינה. בדוגמה זו נעשה שימוש בחישובי התזמון הבאים:

  • ערך שגוי אך מדווח: (1900 – 100 = 1800)/200 = 9 ms

  • ערך נכון: (900 – 100 = 800)/200 = 4 ms

הערך של העמודה ' משך ' עבור ה -RPC: האירוע שהושלם היה מדווח כ-9 אלפיות במקום ב-4 אלפיות האחת. תוצאה זו מכפילה את הערך הנכון של 4 אלפיות האחת. הודעות אזהרה של הסחף מתווספות ל-SQL Server 2005 כדי לציין שפלטי הביצועים שצוינו מוקדם יותר עשויים לא להיות מהימנים. במצבים מסוימים שנחשפו, SQL Server 2005 SP2 עשוי לדווח על הודעות אזהרה לגבי הפעולות הבאות:

  • הודעות אזהרה של סחיפה שווא

  • הסחף יכול להפוך לעשרות אלפיות שניה מבלי לגרום לאפקט מערכת מורגש

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

  • התהליכים פועלים כמצופה.

  • שאילתות SQL Server אינן פועלות בתבניות משך מוזרות.

  • אינך רואה סימנים של צווארי בקבוק אחרים.

עם זאת, לפני שתתעלם מהודעות האזהרה של הסחף, מומלץ ליצור קשר עם היצרן כדי לוודא שלא קיימים בעיות RDTSC ידועות. באפשרותך להשתמש ב-trace דגל 8033 (– T8033) כדי לחזור לאופן הפעולה של הדיווח בגירסת ההפצה המקורית של SQL Server 2005 ו-SQL Server 2005 SP1. גירסת ההפצה המקורית של SQL Server 2005 ו-SQL Server 2005 SP1 אינם מדווחים על הודעות אזהרה של סחף. אם אתה מפעיל את גירסת ההפצה המקורית של SQL Server 2005 או SQL Server 2005 SP1 ללא בעיות, באפשרותך להתעלם מההודעות בדרך כלל.

מדוע משפט ההשהיה של החכות פועל כהלכה? מה לגבי תהליכי מערכת תקופתיים?

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

לקבלת מידע נוסף, לחץ על מספרי המאמרים הבאים כדי להציג את המאמרים ב-Microsoft Knowledge Base:

938448 שרת מבוסס Windows Server 2003 עשוי להיתקל במימוש מונה חותמת זמן אם השרת משתמש במעבדים כפולים של AMD Opteron או במעבדי AMD Opteron מרובים

895980 תוכניות המשתמשות בפונקציה QueryPerformanceCounter עשויות לפעול בצורה גרועה ב-Windows Server 2003 וב-Windows XPמוצרים של ספקים חיצוניים העוסקים במאמר זה מיוצרים על-ידי חברות שאינן תלויות ב-Microsoft. Microsoft אינה מקבלת אחריות, משתמעת או אחרת, אודות הביצועים או המהימנות של מוצרים אלה.

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

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

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

קהילות עוזרות לך לשאול שאלות ולהשיב עליהן, לתת משוב ולשמוע ממומחים בעלי ידע עשיר.

האם מידע זה היה שימושי?

עד כמה אתם מרוצים מאיכות השפה?
מה השפיע על החוויה שלך?
בלחיצה על 'שלח', אתה מאפשר למשוב שלך לשפר מוצרים ושירותים של Microsoft. מנהל ה-IT שלך יוכל לאסוף נתונים אלה. הצהרת הפרטיות.

תודה על המשוב!

×