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

2
ดัชนี Columnstore ในกลุ่มไฟล์ read_only ป้องกัน CheckDB
จะปรากฏการตั้งค่ากลุ่มไฟล์เพื่อread_onlyป้องกันdbcc checkdbฐานข้อมูลทั้งหมดหากกลุ่มไฟล์มีดัชนี columnstore เมื่อพยายามเรียกใช้checkdbหรือcheckfilegroup( สำหรับกลุ่มไฟล์ใด ๆในฐานข้อมูลรวมถึงการอ่านเขียนที่สองและ[PRIMARY] ) ข้อผิดพลาดด้านล่างจะถูกส่งกลับ ... Msg 8921, Level 16, State 1, Line 24 Check terminated. A failure was detected while collecting facts. Possibly tempdb out of space or a system table is inconsistent. Check previous errors. มีวิธีการที่รองรับการมีข้อมูล columnstore ในกลุ่มไฟล์แบบอ่านอย่างเดียวหรือไม่? หรือฉันถูกกีดกันจากการตรวจสอบความสมบูรณ์ในสถานการณ์นี้? Repro create database check_fg_ro go use …

1
ย้ายคีย์หลักไปยังกลุ่มไฟล์ (SQL Server 2012)
ฉันจะย้ายคีย์หลักแบบคลัสเตอร์ไปยังกลุ่มไฟล์ใหม่ได้อย่างไร ฉันได้พบ "อัลกอริทึม" ที่เป็นไปได้แล้ว แต่มันไม่มีประสิทธิภาพอย่างน่ากลัว: วางดัชนีที่ไม่ได้ทำคลัสเตอร์ (ต้องการให้สร้างใหม่และสร้างใหม่) ดร็อปดัชนีแบบคลัสเตอร์ (ต้องใช้ทั้งตารางเพื่อนำไปใช้) สร้างข้อ จำกัด คีย์หลักใหม่ (การดำเนินการเรียงลำดับขนาดใหญ่) สร้างดัชนีที่ไม่ทำคลัสเตอร์ทั้งหมด (จำเป็นต้องมีการเรียงลำดับและการเขียน) มีวิธีที่มีประสิทธิภาพมากกว่านี้ไหม? สิ่งนี้ไม่มีประสิทธิภาพอย่างน่ากลัวและใช้เวลานานเนื่องจากตารางมีขนาด 50GB บนเซิร์ฟเวอร์ที่อ่อนแอ ไม่มีวิธีที่จะข้ามสิ่งเหล่านี้ทั้งหมดและสร้างใหม่ในกลุ่มไฟล์ใหม่หรือไม่ ที่จะไม่ต้องเรียงลำดับข้อมูลใด ๆ

2
มีวิธีการกำหนดไฟล์ที่แน่นอนที่มีหน่วยการจัดสรรในกลุ่มไฟล์ของหลายไฟล์หรือไม่?
ฉันหวังว่าจะได้รับมุมมองที่ละเอียดว่าไฟล์ฐานข้อมูลใดมีหน่วยการจัดสรรใดสำหรับ HoBT ต่างๆ (ทั้งที่อยู่ในแนวเดียวกันและไม่ได้อยู่ในแนวเดียวกัน) ในฐานข้อมูล แบบสอบถามที่ฉันใช้อยู่เสมอ (ดูด้านล่าง) ให้บริการฉันได้ดีจนกระทั่งเราเริ่มสร้างไฟล์ข้อมูลหลายไฟล์ต่อกลุ่มไฟล์และฉันสามารถที่จะหาวิธีที่จะได้รับรายละเอียดเป็นระดับกลุ่มไฟล์ select SchemaName = sh.name, TableName = t.name, IndexName = i.name, PartitionNumber = p.partition_number, IndexID = i.index_id, IndexDataspaceID = i.data_space_id, AllocUnitDataspaceID = au.data_space_id, PartitionRows = p.rows from sys.allocation_units au join sys.partitions p on au.container_id = p.partition_id join sys.indexes i on i.object_id = p.object_id …

1
ประโยชน์ของกลุ่มไฟล์และการตั้งค่ากลุ่มไฟล์เป็นแบบอ่านอย่างเดียว
ใครบางคนสามารถอ้างอิงสถานการณ์โลกแห่งความจริงให้ฉันเมื่อเปลี่ยนกลุ่มไฟล์หลายกลุ่มเป็นแบบอ่านอย่างเดียวเป็นตัวเลือกที่ดีและจะใช้เมื่อใด มีประโยชน์อะไรบ้างถ้าคุณตั้งให้เป็นแบบอ่านอย่างเดียว บนฐานข้อมูลที่มีหลายกลุ่มไฟล์คุณต้องสำรองข้อมูลสำหรับฐานข้อมูลทั้งหมดและสำรองไฟล์แต่ละไฟล์ของกลุ่มไฟล์นั้นหรือไม่ คุณสามารถยกตัวอย่างให้ฉันเมื่อใช้การสำรองข้อมูลกลุ่มไฟล์ได้หรือไม่ ฉันไม่เห็นว่าทำไมจึงเป็นประโยชน์ในการสำรองไฟล์กลุ่มเมื่อคุณสามารถสำรองฐานข้อมูลทั้งหมดได้ หวังว่าฉันจะได้รับประสบการณ์ในโลกแห่งความจริงที่การสำรองไฟล์ของกลุ่มนี้จะเหมาะ

3
SQL Server: กลุ่มไฟล์สำหรับตารางระบบเท่านั้น
หนึ่งในมาตรฐานองค์กรของเราคือมีกลุ่มไฟล์ / ไฟล์แยกต่างหากสำหรับตารางผู้ใช้ / ดัชนี ค่านี้ถูกตั้งค่าเป็นค่าเริ่มต้นดังนั้นไม่จำเป็นต้องมีคุณสมบัติในการสร้างคำสั่ง CREATE TABLE ดังนั้นดูเหมือนว่านี้ fileid 1 = ตารางระบบ, MDF fileid 2 = t-log = LDF fileid 3 = สิ่งที่ผู้ใช้ = NDF ทุกคนที่นี่สามารถช่วยฉันเข้าใจเหตุผลดั้งเดิมได้ไหมว่าทำไมเรื่องนี้ถึงได้รับคำสั่ง? ฉันจะมาทำความสะอาดและฉันคิดว่ามันเป็นของขึ้น Am ฉันผิด ... ? แก้ไข: ฉันรู้วิธีใช้กลุ่มไฟล์เพื่อแยกดัชนี / พาร์ติชั่น / ไฟล์เก็บถาวรรวมถึงวิธีการกู้คืนทีละน้อย คำถามนี้เกี่ยวกับการใช้กลุ่มไฟล์แยกต่างหากในปริมาณเดียวกันสำหรับตารางระบบเท่านั้น

2
การแบ่งพาร์ติชันบนกลุ่มไฟล์เดียว
ฉันมีตารางที่มีขนาดใหญ่มากในฐานข้อมูลของฉัน แต่ข้อมูลจำนวนมากนี้เป็น "เก่า" เนื่องจากสถานการณ์ที่อยู่นอกเหนือการควบคุมของฉันฉันไม่ได้รับอนุญาตให้ลบข้อมูล "เก่า" นี้ ข้อ จำกัด อื่น ๆ คือฉันไม่สามารถแก้ไขฐานข้อมูลหมายถึงเพิ่มกลุ่มไฟล์ลงในนั้น ทุกอย่างอยู่ในPRIMARYกลุ่มไฟล์ ฉันคิดว่าจะแบ่งพาร์ติชันตารางเหล่านี้ออกเป็นพาร์ติชั่นบางตัวเช่น "ใหม่", "เก่า", "เก็บถาวร" และที่คล้ายกัน ฉันมีคอลัมน์ "สถานะ" ที่ฉันต้องการใช้เพื่อจุดประสงค์นี้ จากสถานการณ์และข้อ จำกัด ที่อธิบายไว้ฉันสงสัยว่าการแบ่งพาร์ติชันเหมาะสมหรือไม่ กล่าวอีกนัยหนึ่งถ้าตารางของฉันถูกแบ่งพาร์ติชั่นด้วยวิธีนี้ แต่ทุกพาร์ติชั่นอยู่ในกลุ่มไฟล์เดียวกัน SQL Server จะฉลาดพอที่จะหาพื้นที่พิเศษในไฟล์ต้นแบบที่ข้อมูล "ใหม่" ของฉันอยู่และไม่ได้สัมผัส พื้นที่ที่มีข้อมูล "เก่า" หรือไม่ ถ้าจะให้แตกต่างกันถ้าสมมุติว่า 80% ของข้อมูลของฉันคือ "เก่า" SQL Server มีกลไกในการหลีกเลี่ยงการเข้าถึงไฟล์ต้นแบบ 100% หรือไม่และเข้าถึงได้เพียง 20% ซึ่งมีข้อมูล "ใหม่" (ซึ่งแน่นอนว่าฉันระบุคอลัมน์การแบ่งพาร์ติชันในส่วนWHEREคำสั่ง) ฉันเดาว่าจะตอบคำถามนี้ใครจะต้องเข้าใจว่าการแบ่งพาร์ติชั่นนั้นดำเนินการภายในอย่างไร ฉันขอขอบคุณพอยน์เตอร์ใด ๆ
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.