ค่าเริ่มต้น
autogrowและ
autoshrinkการตั้งค่าจะให้คุณทำงานกับการปรับที่ไม่มีค่าใน SQL Server หลายระบบ อย่างไรก็ตาม มีสภาพแวดล้อมที่คุณไม่มีการเปิดการตั้งค่าหรือที่คุณอาจมีการปรับปรุงนี้
autogrowและ
autoshrinkพารามิเตอร์ บทความนี้ให้ข้อมูลบางอย่างพื้นหลังเพื่อนำคุณเมื่อคุณเลือกการตั้งค่าสำหรับสภาพแวดล้อมการทำงานของคุณ
ต่อไปนี้เป็นบางสิ่งที่ควรพิจารณาถ้าคุณตัดสินใจว่า การปรับแต่งของคุณ
autogrowและ
autoshrinkพารามิเตอร์
อย่างไรฉันต้องกำหนดการตั้งค่าหรือไม่
- คุณสามารถกำหนดค่านี้autogrowและautoshrinkการตั้งค่า โดยใช้อย่างใดอย่างหนึ่งต่อไปนี้:
- คำสั่งการเปลี่ยนแปลงฐานข้อมูล (ไม่พร้อมใช้งานใน SQL Server 7.0)
- Studio จัดการเซิร์ฟเวอร์ sql หรือตัวจัดการองค์กร SQL
- กระบวนการsp_dboptionกระบวนงานที่เก็บไว้ (deprecated ใน SQL Server 2005)
หมายเหตุ:ถ้าคุณใช้ SQL Server 2005 ใช้ Studio จัดการเซิร์ฟเวอร์ SQL แทนตัวจัดการองค์กรของ SQL สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการตั้งค่าการตั้งค่าเหล่านี้ใน SQL Server 2005 แวะไปที่เว็บไซต์ของ Microsoft สำหรับนักพัฒนาเครือข่าย (MSDN) ต่อไปนี้:คุณยังสามารถกำหนดค่านี้autogrowตัวเลือกเมื่อคุณสร้างฐานข้อมูล
คุณสามารถดูการตั้งค่าปัจจุบันถึงคุณสมบัติของฐานข้อมูลใน SQL องค์กร Manager (SEM) หรือ คุณสามารถเรียกใช้คำสั่ง Transact SQL ต่อไปนี้:sp_helpdb [ [ @dbname= ] 'name' ]
- ปัญหาการเก็บไว้ในที่นี้autogrowการตั้งค่าที่มีต่อแฟ้ม ดังนั้น คุณจำเป็นต้องกำหนดพารามิเตอร์เหล่านั้นในสถานที่สองน้อยสำหรับแต่ละฐานข้อมูล (หนึ่งในแฟ้มข้อมูลหลัก) และหนึ่งสำหรับแฟ้มบันทึกหลัก ถ้าคุณมีหลายแฟ้มข้อมูลและ/หรือล็อก คุณต้องเซ็ตตัวเลือกต่าง ๆ บนแต่ละแฟ้ม ทั้งนี้ขึ้นอยู่กับสภาพแวดล้อมของคุณ คุณอาจลงท้าย ด้วยการตั้งค่าที่แตกต่างกันสำหรับแต่ละแฟ้มฐานข้อมูล
เกี่ยวข้องด้านประสิทธิภาพการทำงานคืออะไร
- หากคุณเรียกใช้ธุรกรรมที่จำเป็นต้องมีพื้นที่การบันทึกมากขึ้นกว่า และเปิดใช้งานอยู่autogrowตัวเลือกสำหรับการล็อกธุรกรรมของฐานข้อมูลนั้น นั้นเวลาในธุรกรรมการให้เสร็จสมบูรณ์จะรวมเวลาในล็อกธุรกรรมการขยาย ด้วยยอดเงินที่กำหนดไว้ ถ้ามีการเพิ่มเรขาคณิตมีขนาดใหญ่ หรือมีปัจจัยอื่น ๆ บางอย่างที่ทำให้เกิดการใช้เวลานาน แบบสอบถามที่คุณเปิดธุรกรรมอาจล้มเหลวเนื่องจากความผิดพลาดการหมดเวลา
เรียงลำดับเดียวกันของปัญหาอาจส่งผลจากการ autogrow ของส่วนข้อมูลของฐานข้อมูลของคุณ การเปลี่ยนแปลงของคุณautogrowตั้งค่าคอนฟิก ดูหัว "ฐานข้อมูลการเปลี่ยนแปลง" ข้อใน SQL Server หนังสือออนไลน์
- หากคุณเรียกใช้ธุรกรรมที่มีขนาดใหญ่ที่ต้องการบันทึกการ grow ธุรกรรมอื่น ๆ ที่ต้องการเขียนไว้ในล็อกธุรกรรมจะมีการรอจนกว่าการดำเนินการ grow เสร็จสมบูรณ์
- ถ้าคุณรวมautogrowและautoshrinkตัวเลือก คุณอาจสร้างไม่จำเป็น overhead ตรวจสอบให้แน่ใจว่า thresholds ที่ทริกเกอร์ grow นั้น และดำเนินการลดขนาดจะไม่ทำบ่อย ๆ ขึ้นและลงการเปลี่ยนแปลงขนาด ตัวอย่างเช่น คุณอาจเรียกใช้ธุรกรรมที่ทำให้เกิดการล็อกธุรกรรมการเพิ่ม โดย 100 MB ตามเวลาที่มัน commits บางครั้งหลังจากที่การautoshrinkเริ่มการทำงาน และการลดขนาดล็อกธุรกรรม โดย 100 MB จากนั้นคุณเรียกใช้ธุรกรรมเดียวกัน และจะทำให้เกิดการล็อกธุรกรรมการเพิ่ม โดย 100 MB อีกครั้ง
ในตัวอย่างนั้น คุณกำลัง overhead และอาจสร้างการกระจายตัวของแฟ้มบันทึก อย่างใดอย่างหนึ่งซึ่งส่งผลต่อประสิทธิภาพการทำงานได้ negatively ไม่จำเป็น
- การกระจายตัวที่มีอยู่จริงจากการเปลี่ยนขนาดของแฟ้มข้อมูลหรือล็อกสามารถมี affect ที่รุนแรงประสิทธิภาพการทำงานของคุณ นี้เป็นจริงไม่ว่าคุณใช้การตั้งค่าโดยอัตโนมัติหรือไม่ว่าคุณด้วยตนเองขยาย และลดขนาดแฟ้มบ่อย ๆ
- ถ้าคุณได้ขยายฐานข้อมูลของคุณ โดยเล็กน้อย หรือ ถ้าคุณเพิ่มไว้แล้ว ย่อ คุณสามารถจบขึ้น ด้วยการกระจายตัวของดิสก์ ดิสก์การกระจายตัวของอาจทำให้เกิดปัญหาประสิทธิภาพการทำงานในบางสถานการณ์ได้ สถานการณ์การเพิ่มขนาดเล็กเรขาคณิตยังอาจลดประสิทธิภาพการทำงานบนระบบของคุณ
- ใน SQL Server 2005 หรือรุ่นหลัง คุณสามารถเปิดใช้งานการเตรียมใช้งานแฟ้มการโต้ตอบแบบทันที การเตรียมใช้งานแฟ้มการโต้ตอบแบบทันทีที่ความเร็วอัพการปันส่วนของแฟ้มสำหรับแฟ้มข้อมูลเท่านั้น การเตรียมใช้งานแฟ้มการโต้ตอบแบบทันทีไม่ได้ใช้ระบบแฟ้ม
- ถ้าคุณมี growths แฟ้มจำนวนมากในแฟ้มบันทึกของคุณ คุณอาจมีขนาดใหญ่ excessively จำนวนแฟ้มบันทึกเสมือน (VLF) ซึ่งสามารถนำไปสู่ปัญหาประสิทธิภาพการทำงานกับฐานข้อมูลเริ่มต้น/แบบออนไลน์ดำเนิน การจำลองแบบ การมิเรอร์ และเปลี่ยนแปลงการจับภาพของข้อมูล (CDC) นอกจากนี้ ซึ่งอาจทำให้บางครั้งเกิดปัญหาประสิทธิภาพการทำงานกับการปรับเปลี่ยนข้อมูล
วิธีปฏิบัติที่ดีที่สุด
- สำหรับระบบการผลิตที่ได้รับการจัดการ คุณต้องพิจารณาautogrowเมื่อต้องการจะ contingency สำหรับเรขาคณิตที่ไม่คาดคิดแค่ ไม่จัดเรขาคณิตของข้อมูลและการล็อกในแต่ละวันด้วยautogrow.
- คุณสามารถใช้การแจ้งเตือนหรือโปรแกรมที่ตรวจสอบเพื่อตรวจสอบขนาดของแฟ้ม และขยายแฟ้ม proactively ซึ่งช่วยคุณหลีกเลี่ยงการกระจายตัว และอนุญาตให้คุณสามารถเลื่อนกิจกรรมการบำรุงรักษาเหล่านี้จะไม่ได้สูงสุดชั่วโมง
- AutoShrinkและautogrowต้องมีอย่างรอบคอบประเมิน โดยผู้ดูแลของฐานข้อมูล trained จดทะเบียน (DBA); พวกเขาต้องไม่ถูกปล่อยให้ไม่มีการจัดการ
- ของคุณautogrowคุณต้องเพิ่มขนาดใหญ่พอที่จะหลีกเลี่ยงการอาญาประสิทธิภาพการทำงานที่แสดงในส่วนก่อนหน้า ค่าที่แน่นอนเพื่อใช้ในการตั้งค่าการตั้งค่าคอนฟิกของคุณและเลือกระหว่างแบบเรขาคณิตเปอร์เซ็นต์และแบบเรขาคณิตขนาดเมกะไบต์ที่เจาะจงขึ้นอยู่กับปัจจัยหลายอย่างในสภาพแวดล้อมการทำงานของคุณ นิ้วหัวแม่แบบทั่วไปกฎของมือคุณสามารถใช้สำหรับการทดสอบที่มีการ ตั้งค่าของคุณautogrowการตั้งค่าการประมาณหนึ่งแปดขนาดของแฟ้ม
- เปิดการ<maxsize>ตั้งค่าสำหรับแต่ละแฟ้มเพื่อป้องกันหนึ่งแฟ้มใด ๆ จากเติบไปยังจุดที่จะใช้ค่าทั้งหมดพร้อมใช้งานดิสก์ว่าง</maxsize>
- รักษาขนาดของธุรกรรมของคุณขนาดเล็กมากที่สุดเพื่อป้องกันไม่ให้แฟ้มที่ไม่ได้วางแผนเรขาคณิต
เหตุใดฉันต้องกังวลว่าพื้นที่ดิสก์ถ้ามีควบคุมการตั้งค่าขนาดโดยอัตโนมัติหรือไม่
- กระบวนการautogrowการตั้งค่าไม่สามารถขยายขนาดฐานข้อมูลเกินขีดจำกัดพื้นที่ว่างของดิสก์บนไดรฟ์ที่กำหนดแฟ้ม ดังนั้น ถ้าคุณมีปัญหาในการautogrowฟังก์ชันการปรับขนาดฐานข้อมูลของคุณ คุณต้องตรวจสอบเนื้อที่บนฮาร์ดดิสก์ที่พร้อมใช้งานของคุณได้อย่างอิสระยังคงอยู่ กระบวนการautogrowนอกจากนี้ยังมีจำกัดการตั้งค่า โดย MAXSIZE พารามิเตอร์ที่คุณเลือกสำหรับแต่ละแฟ้ม เมื่อต้องการลดการทำงานออกจากพื้นที่ที่อาจเกิดขึ้น คุณสามารถตรวจสอบตัวนับการตรวจสอบประสิทธิภาพวัตถุฐานข้อมูล SQL Server:: ขนาดของแฟ้มข้อมูล (KB)และตั้งค่าข้อความแจ้งเตือนสำหรับเมื่อฐานข้อมูลถึงขนาดที่แน่นอน
- เรขาคณิตของข้อมูลหรือการบันทึกแฟ้มที่ไม่ได้วางแผนสามารถใช้พื้นที่ว่างที่คาดว่าจะพร้อมใช้งานโปรแกรมประยุกต์อื่น และอาจทำให้ที่โปรแกรมประยุกต์อื่นจะพบปัญหา
- เพิ่มเรขาคณิตของล็อกธุรกรรมของคุณต้องมีขนาดใหญ่พอที่จะยังคงอยู่ก่อนหน้าของความต้องการของหน่วยของธุรกรรม แม้แต่ด้วยautogrowเปิดใช้งานอยู่ คุณสามารถรับข้อความว่าล็อกธุรกรรมทั้งหมด หากคุณไม่สามารถขยายเร็วพอเพื่อตอบสนองความต้องการของแบบสอบถามของคุณ
- sql Server ไม่ constantly ทดสอบสำหรับฐานข้อมูลที่มีในการเข้าชมเขตแดนที่กำหนดไว้สำหรับautoshrink. แทน จะปรากฏในฐานข้อมูลที่พร้อมใช้งาน และค้นหาแรกที่ถูกกำหนดค่าให้ autoshrink โปรแกรมตรวจสอบฐานข้อมูลนั้น และลดขนาดฐานข้อมูลนั้นได้ถ้าจำเป็น จากนั้น มันรอหลายนาทีก่อนการตรวจสอบฐานข้อมูลถัดไปที่มีการกำหนดค่าสำหรับautoshrink. ในอย่างอื่น SQL Server ไม่ตรวจสอบฐานข้อมูลทั้งหมดในคราวเดียวกัน และลดขนาดแฟ้มทั้งหมดในคราวเดียวกัน จะทำงานผ่านฐานข้อมูลในต้องปัด robin เพื่อ stagger การโหลดหมดระยะเวลา ดังนั้น ขึ้นอยู่กับฐานข้อมูลจำนวนบนอินสแตนซ์ของ SQL Server เฉพาะคุณได้กำหนดค่าการ autoshrink อาจใช้เวลาหลายชั่วโมงจากฐานข้อมูลจนกว่านั้นจริง ๆ ลดขนาดเขตแดนกลิ้งครั้ง
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการเพิ่ม และการลดขนาดแฟ้มฐานข้อมูลและแฟ้มบันทึกของคุณ ให้คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
256650
(http://support.microsoft.com/kb/256650/
)
วิธีการลดขนาดล็อกธุรกรรมของ SQL Server 7.0
272318
(http://support.microsoft.com/kb/272318/
)
ลดขนาดแฟ้มบันทึกของธุรกรรมใน SQL Server 2000 ด้วย DBCC SHRINKFILE
317375
(http://support.microsoft.com/kb/317375/
)
ล็อกของธุรกรรม grows โดยไม่คาดคิด หรือใช้ทั้งหมดบนคอมพิวเตอร์ที่ใช้ SQL Server
247751
(http://support.microsoft.com/kb/247751/
)
BUG: ลดแผนการบำรุงรักษาของฐานข้อมูลไม่ขนาดฐานข้อมูล
305635
(http://support.microsoft.com/kb/305635/
)
หมดเวลาเกิดขึ้นเมื่อมีการขยายฐานข้อมูลโดยอัตโนมัติ
949523
(http://support.microsoft.com/kb/949523/
)
เวลาแฝงของการทำแบบจำลองของทรานแซคชันไม่สูงใน SQL Server 2005 เมื่อค่าของคุณสมบัติ "ขนาดเริ่มต้น" และค่าของคุณสมบัติ Autogrowth มีขนาดเล็ก
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการเตรียมใช้งานแฟ้มฐานข้อมูล แวะไปที่เว็บไซต์ของ Microsoft สำหรับนักพัฒนาเครือข่าย (MSDN) ต่อไปนี้:
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการเปิดใช้งานการเตรียมใช้งานแฟ้มการโต้ตอบแบบทันที ไปที่เว็บไซต์ต่อไปนี้ของ Microsoft:
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับสถาปัตยกรรมทางกายภาพในล็อกธุรกรรม ไปที่ MSDN เว็บไซต์ต่อไปนี้:
SQL Server หนังสือออนไลน์ หัวข้อ: "ทรานแซคชันล็อกทางกายภาพสถาปัตยกรรม" "ลดขนาดในทรานแซคชันล็อก"
หมายเลขบทความ (Article ID): 315512 - รีวิวครั้งสุดท้าย: 17 กันยายน 2554 - Revision: 6.0
ใช้กับ
- Microsoft SQL Server 2000 Standard Edition
- Microsoft SQL Server 7.0 Standard Edition
- Microsoft SQL Server 2005 Standard Edition
- Microsoft SQL Server 2005 Express Edition
- Microsoft SQL Server 2005 Developer Edition
- Microsoft SQL 2005 Server Enterprise
- Microsoft SQL 2005 Server Workgroup
| kbinfo kbmt KB315512 KbMtth |
แปลโดยคอมพิวเตอร์ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:
315512
(http://support.microsoft.com/kb/315512/en-us/
)