ข้อควรพิจารณาสำหรับการตั้งค่า "autogrow" และ "autoshrink" ใน SQL Server

ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ

ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:315512
สรุป
ค่าเริ่มต้นautogrowและautoshrinkการตั้งค่าจะให้คุณทำงานกับการปรับที่ไม่มีค่าใน SQL Server หลายระบบ อย่างไรก็ตาม มีสภาพแวดล้อมที่คุณไม่มีการเปิดการตั้งค่าหรือที่คุณอาจมีการปรับปรุงนี้autogrowและautoshrinkพารามิเตอร์ บทความนี้ให้ข้อมูลบางอย่างพื้นหลังเพื่อนำคุณเมื่อคุณเลือกการตั้งค่าสำหรับสภาพแวดล้อมการทำงานของคุณ
ข้อมูลเพิ่มเติม
ต่อไปนี้เป็นบางสิ่งที่ควรพิจารณาถ้าคุณตัดสินใจว่า การปรับแต่งของคุณautogrowและautoshrinkพารามิเตอร์

อย่างไรฉันต้องกำหนดการตั้งค่าหรือไม่

  1. คุณสามารถกำหนดค่านี้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) ต่อไปนี้:
    วิธีการ: เพิ่มข้อมูลหรือแฟ้มล็อกฐานข้อมูล (SQL Server Management Studio)
    http://msdn2.microsoft.com/en-us/library/ms189253.aspx
    คุณสมบัติของฐานข้อมูล (แฟ้มเพจ)
    http://msdn2.microsoft.com/en-us/library/ms180254.aspx
    คุณยังสามารถกำหนดค่านี้autogrowตัวเลือกเมื่อคุณสร้างฐานข้อมูล

    คุณสามารถดูการตั้งค่าปัจจุบันถึงคุณสมบัติของฐานข้อมูลใน SQL องค์กร Manager (SEM) หรือ คุณสามารถเรียกใช้คำสั่ง Transact SQL ต่อไปนี้:
    sp_helpdb [ [ @dbname= ] 'name' ]
  2. ปัญหาการเก็บไว้ในที่นี้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วิธีการลดขนาดล็อกธุรกรรมของ SQL Server 7.0
272318ลดขนาดแฟ้มบันทึกของธุรกรรมใน SQL Server 2000 ด้วย DBCC SHRINKFILE
317375ล็อกของธุรกรรม grows โดยไม่คาดคิด หรือใช้ทั้งหมดบนคอมพิวเตอร์ที่ใช้ SQL Server
247751BUG: ลดแผนการบำรุงรักษาของฐานข้อมูลไม่ขนาดฐานข้อมูล
305635หมดเวลาเกิดขึ้นเมื่อมีการขยายฐานข้อมูลโดยอัตโนมัติ
949523เวลาแฝงของการทำแบบจำลองของทรานแซคชันไม่สูงใน SQL Server 2005 เมื่อค่าของคุณสมบัติ "ขนาดเริ่มต้น" และค่าของคุณสมบัติ Autogrowth มีขนาดเล็ก
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการเตรียมใช้งานแฟ้มฐานข้อมูล แวะไปที่เว็บไซต์ของ Microsoft สำหรับนักพัฒนาเครือข่าย (MSDN) ต่อไปนี้:สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการเปิดใช้งานการเตรียมใช้งานแฟ้มการโต้ตอบแบบทันที ไปที่เว็บไซต์ต่อไปนี้ของ Microsoft:สำหรับข้อมูลเพิ่มเติมเกี่ยวกับสถาปัตยกรรมทางกายภาพในล็อกธุรกรรม ไปที่ MSDN เว็บไซต์ต่อไปนี้:
SQL Server หนังสือออนไลน์ หัวข้อ: "ทรานแซคชันล็อกทางกายภาพสถาปัตยกรรม" "ลดขนาดในทรานแซคชันล็อก"
ลดขนาดย่อขนาดอัตโนมัติ growing ขยายขยายยุบลด 1105 ล็อกเต็มว่างขนาดใหญ่ smaller ใหญ่ไม่ไม่จัดสรรเนื้อที่สำหรับวัตถุ

คำเตือน: บทความนี้ได้รับการแปลโดยอัตโนมัติ

คุณสมบัติ

รหัสบทความ: 315512 - การตรวจสอบครั้งสุดท้าย: 09/17/2011 16:09:00 - ฉบับแก้ไข: 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
คำติชม