คำถามติดแท็ก dbcc

3
ความแตกต่างระหว่างลดขนาดฐานข้อมูลและไฟล์คืออะไร?
DBCC ShrinkDatabase() DBCC ShrinkFile() ฉันต้องรันทั้งสองคำสั่ง DBCC เพื่อลดขนาดฐานข้อมูลหรือไม่? ความแตกต่างระหว่างสองสิ่งข้างต้นนี้คืออะไร?

6
การลดขนาดไฟล์บันทึกไม่ลดขนาด
ฉันมีฐานข้อมูลที่มีไฟล์ข้อมูล 350 MB (.mdf) และไฟล์บันทึก 4.9 GB (.ldf) FULLรุ่นการกู้คืนจะถูกกำหนดให้ เมื่อฉันพยายามที่จะลดขนาดไฟล์บันทึกก็ไม่หดตัว ฉันรู้ว่าการลดขนาดฐานข้อมูลไม่ดีและไม่ควรทำ แต่ก็ยังฉันพยายามทำเพื่อลดขนาดไฟล์บันทึก เมื่อฉันวิ่ง DBCC SQLPerf(logspace) ฉันพบว่าขนาดบันทึกเป็น4932 MBและพื้นที่บันทึกที่ใช้คือ98.76% ! จากนั้นฉันลองคำสั่งนี้ USE <databasename>; DBCC loginfo; ตอนนี้ VLF เกือบทั้งหมดเป็น "สถานะ 2" ซึ่งหมายความว่าทั้งหมดใช้งานอยู่ ฉันพยายามที่จะสำรองข้อมูลบันทึกแล้วลดขนาดไฟล์บันทึก การลดขนาดไม่ลดขนาด ฉันเปลี่ยนรูปแบบการกู้คืนSIMPLEและลองลดขนาดอีกครั้ง แต่สิ่งนี้ก็ไม่ได้ช่วย ฉันตรวจสอบธุรกรรมที่เปิดอยู่ DBCC opentran (database); และพบว่าไม่มีธุรกรรมใดเปิดอยู่ อะไรทำให้ฉันไม่สามารถย่อขนาดไฟล์ล็อกได้ ฉันจะแก้ปัญหานี้ได้อย่างไร

1
ความเสียหายประเภทใดที่ DBCC CheckDB พลาด
คำถามนี้ได้รับแจ้งจากโพสต์ก่อนหน้านี้และมีฐานข้อมูลของฉันถูกเก็บไว้สำหรับการตรวจสอบในอนาคตที่ถูกเรียกคืนต่อไปนี้: BACKUP 'BrokenDatabase' detected an error on page (1:123456) in file ’BrokenDatabase.mdf'. Error: 3043, Severity: 16, State: 1. ในคำถามที่เชื่อมโยงและการสำรองข้อมูลฉันมีความพร้อมสำหรับการตรวจสอบหน้า DBCC, CHECKDB DBCC ผ่านไปโดยไม่มีข้อผิดพลาด แต่ความเสียหายปรากฏชัด ความเสียหายประเภทใดที่สามารถเกิดขึ้นได้โดย CHECKDB จะผ่านไป แต่การสำรองข้อมูลด้วยเช็คจะล้มเหลว

1
SHRINKFILE Failure - ทำไมการเพิ่มขนาดไฟล์จึงแก้ไขได้?
ฉันใช้SHRINKFILEการดำเนินการบางอย่างเพื่อทำความสะอาดไฟล์เล็ก ๆ ที่ไม่จำเป็นในกลุ่มไฟล์ สำหรับการย่อขนาดหนึ่งคำสั่งด้านล่างส่งผลให้เกิดข้อผิดพลาด: DBCC SHRINKFILE (N'myfile' , EMPTYFILE)' ID ไฟล์ x ของ ID ฐานข้อมูล x ไม่สามารถย่อขนาดได้เนื่องจากเป็นกระบวนการที่ถูกย่อโดยกระบวนการอื่นหรือว่างเปล่า มันไม่ได้ว่างเปล่าหรือหดตัว มันกำลังถูกรันบนฐานข้อมูลที่ไม่ได้ใช้งานโดยทุกคนยกเว้นตัวฉันเอง ไม่ได้เปิดใช้งานการย่อขนาดอัตโนมัติและไม่เคยเป็น แต่มีอยู่ shrinks คู่มือการดำเนินการเกี่ยวกับฐานข้อมูลนี้เป็นประจำก่อนที่จะฉันได้รับในมือของฉันที่มันถ้าเรื่องที่ทุก บนSQLServerCentralเธรดจากทศวรรษที่ผ่านมาแนะนำการเพิ่ม MB ไม่กี่ MB ลงในแฟ้มได้เนื่องจาก "ตั้งค่าตัวนับภายในหรือสวิตช์ภายในที่บอกว่ามันไม่ได้อยู่ในช่วงหดตัวในขณะนี้" สิ่งนี้ใช้ได้ - ยอดเยี่ยม แต่ทุกคนสามารถอธิบายรายละเอียดที่มากขึ้นว่า / ทำไมมันถึงเกี่ยวกับ SQL Server internals?

2
การลบไฟล์ข้อมูลทุติยภูมิ DBCC SHRINKFILE: ไม่สามารถย้ายหน้าได้เนื่องจากเป็นหน้าตารางงาน
ฉันมีมากเกินไปไฟล์ข้อมูลทุติยภูมิ (.ndf) tempdbที่สร้างขึ้นสำหรับ ในการลบไฟล์ส่วนเกินฉันต้องล้างไฟล์ (เนื้อหาจะถูกย้ายไปยังไฟล์อื่น): DBCC SHRINKFILE('tempdbfile8', EMPTYFILE); แล้วลบไฟล์: ALTER DATABASE tempdb REMOVE FILE tempdbfile8; แต่EMPTYFILEคำสั่งจะส่งคืนข้อผิดพลาด: DBCC SHRINKFILE: Page 8:41920 could not be moved because it is a work table page. Msg 2555, Level 16, State 1, Line 2 Cannot move all contents of file "tempdbfile8" to other places to …

1
รายการที่ชัดเจนของขั้นตอนสำหรับการทดสอบพื้นฐานของ SQL Server?
ก่อนเรียกใช้การทดสอบประสิทธิภาพ / พื้นฐานสำหรับแอปที่ใช้ SQL Server ฉันต้องการให้สามารถตั้งค่าอินสแตนซ์เป็นสถานะ "ใหม่ทั้งหมด" โดยไม่ต้องเริ่มต้นอินสแตนซ์ใหม่ มีขั้นตอนที่ฉันมักจะทำตาม แต่ฉันต้องการสร้างรายการที่ชัดเจนที่อยู่ในลำดับที่ถูกต้องและไม่มีขั้นตอนซ้ำซ้อน รายการขั้นตอนนี้ทำให้การตั้งค่า SQL Server เป็นสถานะ "สะอาด" หรือไม่ ลำดับลอจิก / ถูกต้องหรือไม่? มีขั้นตอนที่ซ้ำซ้อนหรือไม่? CHECKPOINT -- Write all dirty pages DBCC DROPCLEANBUFFERS -- All should be clean after checkpoint? DBCC FREEPROCCACHE -- Clear the plan cache DBCC FREESYSTEMCACHE -- Is this necessary after FREEPROCCACHE? …

1
DBCC Shrinkfile ลักษณะการทำงานที่แปลก
ฉันพยายามเรียกใช้ dbcc shrinkfile ในหน่วยความจำ 1GB เทียบกับฐานข้อมูลที่ 95% ของข้อมูลถูกเก็บถาวรและลบ ฉันเลื่อนไฟล์ 235GB โดยที่ 9GB เป็นข้อมูล / ดัชนี ฉันต้องการลดขนาดลงเหลือ 50GB ฉันรู้ว่าไฟล์ฐานข้อมูลที่ลดขนาดไม่ดีก็ทำให้เกิดการแตกหัก ฯลฯ เป็นส่วนหนึ่งของการล้างข้อมูล / หดตัวเรายังมีสคริปต์ idnex สร้างใหม่ เมื่อฉันรันสคริปต์ dbcc shrinkfile กับฐานข้อมูลบนเวิร์กสเตชันของฉันเอง (quad core, RAM 12GB, ไดรฟ์ SATA 2 เท่า) การลดขนาดใช้เวลาประมาณ 8-10 นาที เมื่อรันโค้ดที่เหมือนกันกับสำเนาที่เหมือนกันของการล้างข้อมูลที่ทำการโพสต์ฐานข้อมูลใน envrionment การทดสอบของเรา (80+ คอร์, 128GB RAM, SSD SAN) ใช้เวลา 70 …

2
เป็นไปได้ที่จะรันคำสั่ง DBCC INDEXDEFRAG สองคำพร้อมกันโดยแต่ละคำสั่งบนตารางที่แตกต่าง
ฉันกำลังเรียกใช้สคริปต์ซึ่งดำเนินการ DBCC INDEXDEFRAG ในทุก ๆ ตารางในฐานข้อมูล SQL Server 2005 หนึ่งตารางต่อครั้ง การใช้ DBCC DBREINDEX แทนที่จะเป็น INDEXDEFRAG ไม่ใช่ตัวเลือกเนื่องจากข้อ จำกัด ด้านพื้นที่และข้อกำหนดเกี่ยวกับสถานะการออนไลน์ ฉันสังเกตว่าต้องใช้เวลานานกว่าปกติในการจัดระเบียบตาราง ตัวอย่างเช่นถ้าฉันตรวจสอบมุมมองการจัดการแบบไดนามิก "sys.dm_exec_requests" ฉันจะเห็นว่า INDEXDEFRAG ต่อไปนี้กำลังปั่นออกไปในดัชนีคลัสเตอร์ของตารางที่มี table_id ของ 829610394: DBCC INDEXDEFRAG (0, 829610394, 1) ฉันรู้ว่ามันจะใช้เวลานานก่อนที่กระบวนการจัดเรียงข้อมูลจะเสร็จสมบูรณ์ หากข้อเท็จจริงที่ว่าสคริปต์ที่กำลังทำงานอยู่ในที่สุดจะจัดเรียงข้อมูลในตารางทั้งหมดจะมีอันตรายใด ๆ ในตัวฉันที่รัน DBCC INDEXDEFRAG ด้วยตนเองในดัชนีคลัสเตอร์ของตารางอื่นในขณะที่คำสั่งปัจจุบันทำงานหรือไม่ จริง ๆ แล้วทั้งสองตารางจะถูกจัดระเบียบในเวลาเดียวกันถ้าฉันทำเช่นนี้?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.