คำถามติดแท็ก sql-server

Microsoft SQL Server ทุกรุ่น (ไม่ใช่ MySQL) โปรดเพิ่มแท็กเฉพาะเวอร์ชันเช่น sql-server-2016 เนื่องจากมักเกี่ยวข้องกับคำถาม

1
ทำไมมิเรอร์ฐานข้อมูลของฉันแตกหลังจากเปลี่ยนการตั้งค่ากลุ่มไฟล์จาก RESTRICTED_USER เป็น MULTI_USER
สภาพแวดล้อมของฉันคือต่อไปนี้: VMWare 5.5เซิร์ฟเวอร์ vitalized MS Windows Server 2008R2 องค์กรโดเมนและSQL Server 2008 R2 องค์กร จัดเก็บข้อมูลส่วนกลางด้วยการเชื่อมต่อช่องสัญญาณไฟเบอร์ SQL Server DBฉันมีพาร์ทิชันในของฉัน ฉันมี 2 file groups: หนึ่งเดียวกับข้อมูลที่อยู่อาศัย (FG1) , ครั้งที่สองกับข้อมูลทางประวัติศาสตร์ (HDG) read-onlyกลุ่มไฟล์ที่สองคือ แต่ละเดือนฉันเคลื่อนไหวในพาร์ติชัน - ฉันเพิ่มข้อมูลใหม่ (จากเดือนก่อนหน้า) ไปยังข้อมูลประวัติ กระบวนการนี้โดยอัตโนมัติ เราย้ายฐานข้อมูลไปยังเซิร์ฟเวอร์ใหม่ ตอนแรกที่ผมต้องทำกระบวนการด้วยตนเอง ระหว่างการดำเนินการนี้มิร์เรอร์ของฉันหยุดทำงาน (หลังจากการดำเนินการ 3 - ดูการไหลของกระบวนการ) พร้อมข้อผิดพลาดต่อไปนี้: บนเซิร์ฟเวอร์ PRINCIPAL: ROW 0 ในบันทึก: Date 15.6.2015 20:54:11 Log …

2
SQL Server DB ไม่สามารถใช้งานข้ามคืนได้
เมื่อวานฐานข้อมูล SQL Server ของฉันใช้ได้ วันนี้มันเกือบจะใช้ไม่ได้ - มันช้าลงโดยมีปัจจัยระหว่างห้าถึงยี่สิบขึ้นอยู่กับเวลาที่ฉันโดนมัน ข้อมูลบางอย่างถูกเพิ่มไปยังเซิร์ฟเวอร์ในกระบวนการโหลดข้ามคืน แต่ไม่มีอะไรเหมือนไดรฟ์ที่ควรส่งผลกระทบต่อฐานข้อมูลที่มาก ประมาณ 50,000 เรคคอร์ดข้อความธรรมดา (ไม่มี XML หรือ frippery อื่น ๆ ) เซิร์ฟเวอร์ได้รับการแก้ไขเมื่อเช้านี้ก่อนที่เราจะรีบูต อย่างไรก็ตามไม่มีเซิร์ฟเวอร์ฐานข้อมูลอื่น ๆ ของเราที่ได้รับการติดตั้งด้วยเช่นกัน การตรวจสอบทรัพยากรดูเหมือนจะแนะนำว่าดิสก์ IO ของตนเป็นความผิดพลาด มันทำงานได้อย่างเต็มประสิทธิภาพ 100% ของความจุไฟล์. mdf ตลอดเวลาแม้ว่าจะมีฐานข้อมูลเกิดขึ้นไม่มากก็ตาม การเข้าถึง Templog.ldf ยังทำงานค่อนข้างสูง ไม่มีใครที่นี่เป็นผู้เชี่ยวชาญ DBA (เราทุกคนเป็นนักพัฒนาที่มีทักษะ SQL แตกต่างกันจำนวนมาก) และเราทุกคนก็งงงันกับสิ่งที่เกิดขึ้น เราได้ลองใช้งาน sp_updatestats และย้ายดัชนีขนาดใหญ่ไปยังดิสก์ที่แตกต่างกันเพื่อไม่เกิดประโยชน์ ฉันคิดว่าสิ่งนี้ต้องมีบางอย่างเกี่ยวกับแพทช์ - ดูเหมือนว่าจะมีอุบัติการณ์มากเกินไป เพื่อนร่วมงานเชื่อมั่นว่าการโหลดข้อมูลทำให้ขนาดของ mdf เพิ่มขึ้นจนถึงจุดที่ทำให้แผนการดำเนินการไม่มีประสิทธิภาพ เกิดอะไรขึ้นบนโลกนี้ …

1
อะไรคือความแตกต่างระหว่างการบีบอัดข้อมูลบน PK กับบนโต๊ะ?
การบีบอัดข้อมูลสามารถตั้งค่าบนโต๊ะ: CREATE TABLE dbo.SomeTable( SomeId [bigint] NOT NULL, OtherId [bigint] NOT NULL, IsActive [bit] NOT NULL, CONSTRAINT [PK_Some] PRIMARY KEY CLUSTERED ( SomeId Desc ) ) ON SomePartitionScheme(SomeId) WITH (DATA_COMPRESSION=PAGE) และสามารถกำหนดได้บนคีย์หลัก: CREATE TABLE dbo.SomeTable( SomeId [bigint] NOT NULL, OtherId [bigint] NOT NULL, IsActive [bit] NOT NULL, CONSTRAINT [PK_Some] PRIMARY KEY …

3
มีข้อดีที่จะไม่แบ่งพาร์ติชันให้สอดคล้องกับดัชนีหรือไม่?
ฉันมีสิทธิ์จัดการตาราง OLAP ที่แบ่งพาร์ติชันขนาดใหญ่ ในขณะที่ตรวจสอบตารางนี้ฉันสังเกตเห็นว่าดัชนีตัวใดตัวหนึ่งไม่ตรงกับชุดรูปแบบการแบ่งพาร์ติชัน เนื่องจากผู้เขียนไม่พร้อมใช้งานและการค้นหาของ Google ที่สร้างขึ้นอย่างระมัดระวังจึงไม่ส่งคืนผลลัพธ์ที่เป็นประโยชน์ใด ๆ ฉันไม่แน่ใจว่าสิ่งนี้เป็นไปโดยเจตนาหรือไม่ตั้งใจ มีเหตุผลใดที่จะไม่จัดพาร์ติชันดัชนีใน SQL Server 2008?

3
รับ MS SQL Server เพื่อปล่อยพื้นที่ดิสก์
ตารางฐานข้อมูลที่มีการจัดการไม่ดีมีจำนวนมหาศาล 48 + กิ๊กบันทึกเด็กกำพร้า ฉันพยายามทำความสะอาดและทำให้ฮาร์ดไดรฟ์เต็มอันตรายของฉันกลับสู่สภาวะปกติ ฉันจะลบประมาณ 400 ล้านบันทึกจากตารางนี้ สิ่งนี้กำลังทำงานอยู่ขณะที่ฉันพิมพ์ ฉันสังเกตเห็นว่าฉันไม่เห็นการลดลงของพื้นที่ว่างในฮาร์ดไดรฟ์ของฉัน แต่ฉันเห็นหน่วยความจำลดลงในแบบสอบถามตารางระบบฉันกำลังทำงานเพื่อให้ได้ขนาดตาราง ฐานข้อมูลใช้ "Simple Recovery Model" มีคำถามมากมายที่คล้ายกับสิ่งนี้พร้อมคำตอบที่บอกว่าคุณจำเป็นต้องลดขนาดฐานข้อมูล แต่พวกเขายังอธิบายต่อไปว่าสิ่งเลวร้าย / น่ากลัวนี้เกิดขึ้นเพราะข้อมูลที่อยู่อย่างกระจัดกระจาย ฯลฯ เนื่องจากฐานข้อมูลไม่ควรมีขนาดนี้ มันยังไม่ดีสำหรับฉันที่จะหดหรือไม่ นี่คือฐานข้อมูลการผลิต หากฉันย่อขนาดลงมันจะทำให้ระบบหยุดทำงานหรือล็อคฐานข้อมูลหรือไม่ ใน SQL Server Management Studio คุณมีสองตัวเลือกสำหรับการย่อขนาดฐานข้อมูลหรือไฟล์ ให้สถานการณ์ของฉันสิ่งที่จะเป็นตัวเลือกที่ดีที่สุด? มีกฎเกี่ยวกับเปอร์เซ็นต์ของพื้นที่ว่างที่ควรมีฐานข้อมูลหรือไม่ การอ่านคำอธิบายแท็กของการย่อขนาดทำให้ฉันไม่ต้องการทำเช่นนั้น มีวิธีอื่นอีกไหม?

1
จะทราบได้อย่างไรว่าไฟล์สำรองประกอบด้วย CDC หรือไม่
การใช้ SQL Server 2008 ถึงปี 2014 ฉันรู้วิธีสำรองและกู้คืนฐานข้อมูลด้วย Change Data Capture enabled (CDC) แต่สิ่งที่ฉันกำลังมองหาคือวิธีการสืบค้นไฟล์สำรองข้อมูลเต็มรูปแบบเพื่อตรวจสอบว่ามีข้อมูล CDC หรือไม่ สิ่งที่ดีมากจะเป็นเช่นRESTORE FILELISTONLYนั้นที่ได้รับรายชื่อไฟล์จากฐานข้อมูล แต่รับสถานะ CDC แทนเพื่อพิจารณาว่าการกู้คืนจะต้องใช้การตั้งค่าสถานะ KEEP_CDC หรือไม่ มีวิธีการตรวจสอบว่าการสำรองข้อมูลประกอบด้วยข้อมูล CDC หรือไม่ ขอบคุณ!

1
ไม่สามารถกู้คืนได้ (ข้อผิดพลาด 3456)
ฉันมีสถานการณ์ที่ไม่สามารถเข้าใจได้ง่ายและคิดว่าฉันจะถามในฟอรัมนี้หากผู้อื่นอาจมีคำแนะนำ ฉันใช้ SQL Server 2008 R2 SP3 มาตรฐานบน Windows Server 2008R2 Enterprise ฐานข้อมูลต้องการการบำรุงรักษาและหลังจากที่ฉันต้องกู้คืนบนเซิร์ฟเวอร์อื่น ฉันมีการสำรองฐานข้อมูลเต็มรูปแบบโดยใช้ COPY_ONLY บวกชุดสำเนาสำรอง 4 ชุด ก่อนที่จะเริ่มสร้าง tlogbackup1 เปลี่ยนจากFULLเป็นBULK_LOGGEDโมเดลการกู้คืน เพิ่มกลุ่มไฟล์ใหม่ เพิ่มไฟล์ไปยัง newfilegroup ตั้ง newfilegroup ให้เป็นค่าเริ่มต้น เลือกลงในตาราง (ใน newfilegroup) วางตารางต้นฉบับ ลบไฟล์ต้นฉบับ ลบกลุ่มไฟล์ดั้งเดิม เปลี่ยนชื่อของตารางใหม่เพื่อให้ตรงกับตารางเดิม เปลี่ยนชื่อไฟล์ของ newfilegroup เพื่อให้ตรงกับกลุ่มไฟล์ดั้งเดิม เปลี่ยนชื่อไฟล์ในแค็ตตาล็อกเพื่อให้ตรงกับชื่อไฟล์ต้นฉบับ เปลี่ยนชื่อไฟล์ที่ระดับ OS เพื่อให้ตรงกับชื่อไฟล์ต้นฉบับ กำหนด filegroup เริ่มต้นให้เป็นต้นฉบับ นำ db ออนไลน์ เปลี่ยนจากBULK_LOGGEDเป็นFULLโมเดลการกู้คืน หลังจากเสร็จสิ้นทุกขั้นตอนให้สร้าง tlogbackup2 …

2
Page Life Expectancy พูดถึงเรื่องนี้อย่างไร
ฉันได้ติดตั้งซอฟต์แวร์ตรวจสอบในอินสแตนซ์ของ SQL Server สองสามตัวในสภาพแวดล้อม ฉันพยายามค้นหาคอขวดและแก้ไขปัญหาด้านประสิทธิภาพ ฉันต้องการตรวจสอบว่าเซิร์ฟเวอร์บางแห่งต้องการหน่วยความจำเพิ่มเติมหรือไม่ ฉันสนใจในหนึ่งเคาน์เตอร์: อายุขัยหน้า มันดูแตกต่างในทุกเครื่อง ทำไมมันถึงเปลี่ยนบ่อยในบางกรณีและมันหมายถึงอะไร? โปรดดูข้อมูลจากสัปดาห์ที่แล้วที่รวบรวมบนเครื่องที่แตกต่างกันสองสามเครื่อง คุณจะพูดอะไรเกี่ยวกับแต่ละตัวอย่าง ใช้ตัวอย่างการผลิตอย่างหนัก (1): istance การผลิตที่ใช้ในระดับปานกลาง (2) ตัวอย่างการทดสอบที่ใช้ไม่ค่อย (3) ใช้ตัวอย่างการผลิตอย่างหนัก (4) ตัวอย่างทดสอบที่ใช้ในระดับปานกลาง (5) ใช้คลังข้อมูลอย่างหนัก (6) แก้ไข: ฉันกำลังเพิ่มเอาต์พุตของ SELECT @@ VERSION สำหรับเซิร์ฟเวอร์เหล่านี้ทั้งหมด: Instance 1: Microsoft SQL Server 2008 R2 (SP1) - 10.50.2500.0 (X64) Jun 17 2011 00:54:03 Copyright (c) Microsoft Corporation …

1
ข้อผิดพลาด AlwaysOn Availability Group หลังจาก Windows Update ในสภาพแวดล้อมที่ไม่มีคลัสเตอร์ล้มเหลว
บริการ SQL Server ของเราหยุดทำงานในเช้าวันนี้ซึ่งทำให้เว็บไซต์บางแห่งของเราแย่ลง เมื่อฉันไปตรวจสอบ Windows Event Viewer ฉันเห็นข้อผิดพลาดดังต่อไปนี้: การอัปเกรดระดับสคริปต์สำหรับฐานข้อมูล 'ต้นแบบ' ล้มเหลวเนื่องจากขั้นตอนการอัปเกรด 'SSIS_hotfix_install.sql' พบข้อผิดพลาด 942 สถานะ 4 ความรุนแรง 25 ไม่สามารถกู้คืนฐานข้อมูลหลัก SQL Server ไม่สามารถเรียกใช้ กู้คืนข้อมูลหลักจากการสำรองข้อมูลเต็มรูปแบบซ่อมแซมหรือสร้างใหม่ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการสร้างฐานข้อมูลหลักดู SQL Server Books Online สิ่งแรกที่ฉันทำคือข้อผิดพลาดของ Google ในที่สุดฉันก็พบรายการฟอรัมที่มีปัญหาตรงและแก้ไขได้ (ในรายการบล็อกที่ฉันกำลังหาวิธีแก้ไข ) ปัญหาเกี่ยวข้องกับกลุ่ม AlwaysOn Availability และการแก้ไขกำหนดให้คุณ: เริ่มบริการ SQL Server ด้วยการติดตามค่าสถานะ 902: Net Start MSSQL $ InstanceName / T902 …

3
ชุดประกอบ 'system.web รุ่น = 4.0.0.0, วัฒนธรรม = เป็นกลาง, publickeytoken = b03f5f7f11d50a3a' ไม่พบในแคตตาล็อก SQL
ฉันพยายามปรับใช้ฟังก์ชัน SQL CLR โดยใช้วิธี HTTPUtility.UrlDecode ของ System.Web แต่ฉันไม่สามารถปรับใช้ ได้รับข้อผิดพลาด: ผู้ให้บริการข้อมูล Net SqlClient: ข่าวสารเกี่ยวกับ 6503 ระดับ 16 สถานะ 12 แอสเซมบลีบรรทัดที่ 1 'system.web รุ่น = 4.0.0.0 วัฒนธรรม = เป็นกลาง publickeytoken = b03f5f7f11d50a3a' ไม่พบในแคตตาล็อก SQL ฟังก์ชั่น (เป็นส่วนหนึ่งของโครงการ SSDT): using System; using System.Web; using System.Data; using System.Data.SqlClient; using System.Data.SqlTypes; using Microsoft.SqlServer.Server; public partial class …

1
T-SQL - OPTION (FAST x) และค่าสถานะการติดตาม 8722
ฉันค้นหาเป็นเวลานานและยังไม่พบคำตอบสำหรับปัญหาของฉัน Dynamics AX ของเรากำลังสร้างการสืบค้นด้วยคำแนะนำการสืบค้น OPTION (FAST x) ซึ่งบางครั้งก็บังคับให้ใช้แผนการดำเนินการที่ไม่ดี ผู้พัฒนากล่าวว่าเป็นค่าเริ่มต้นและยากที่จะเปลี่ยนแปลง (ต้องแก้ไขในทุกรูปแบบที่อาจเกิดขึ้น) ดังนั้นฉันจึงใช้วิธีแทนที่คำแนะนำเหล่านี้โดยใช้ค่าสถานะการติดตาม ฉันพบการตั้งค่าสถานะการสืบค้นกลับที่น่ารัก 8722 ซึ่งอ้างว่าทำให้ SQL Server ไม่สนใจคำแนะนำการสืบค้นบางอย่างโดยเฉพาะอย่างยิ่งคำสั่งย่อยใน OPTION อย่างไรก็ตามนี่ไม่ได้ผลในกรณีของฉัน ฉันพยายามเปิดใช้งานการตั้งค่าสถานะการสืบค้นกลับ 8602 (ปิดใช้งานคำแนะนำดัชนี) เช่นกัน แต่แบบสอบถามของฉันยังคงทำงานด้วยคำใบ้ FAST x (มันช้ากว่าเมื่อฉันลบส่วนคำสั่ง OPTION ออก) ฉันพยายามล้างแคชแผนเช่นกันเพื่อประโยชน์ ความคิดใด ๆ ฉันไม่มีอะไรเลยหรือ PS ฉันเปิดใช้งานการตั้งค่าสถานะการติดตามทั่วโลกนี่คือ SQL Server 2012 Developer Edition

1
การติดตาม SQL Server ขึ้นอยู่กับพอร์ต TCP ของไคลเอ็นต์
ฉันมีเทอร์มินัลเซิร์ฟเวอร์ Windows ที่มีผู้ใช้หลายคนลงชื่อเข้าใช้ผ่าน RDP เพื่อเรียกใช้แอปพลิเคชัน แอปพลิเคชันทำให้การเชื่อมต่ออย่างน้อยหนึ่งรายการต่อผู้ใช้กับอินสแตนซ์ของ SQL Server 2008 R2 ผู้ใช้ทั้งหมดเข้าถึงฐานข้อมูลเดียวกันโดยใช้การเข้าสู่ระบบ SQL เดียวกัน ฉันต้องการที่จะสามารถติดตามเซสชัน SQL ของผู้ใช้เฉพาะ แต่ฉันไม่พบวิธีการตรวจสอบเซสชัน SQL ที่เป็นของผู้ใช้ที่ อย่างไรก็ตามฉันสามารถระบุพอร์ต TCP ต้นทางแต่ละอินสแตนซ์ของแอปพลิเคชันที่ใช้ มีวิธีการติดตามเซสชัน SQL ที่ยึดตามพอร์ต TCP ของลูกค้าหรือไม่

1
สำรองข้อมูล Tail Log เมื่อทำการกู้คืน?
โดยทั่วไปเมื่อทำการกู้คืนฐานข้อมูลจากเซิร์ฟเวอร์ที่ใช้งานจริงไปยังเซิร์ฟเวอร์ที่ไม่ได้ใช้งานจริงฉันจะใช้ตัวเลือก WITH REPLACE เช่นเดียวกับเมื่อฉันลืมฉันได้รับข้อผิดพลาดเกี่ยวกับ tail log ที่ไม่มีการสำรองข้อมูล ตาม MSDNฉันควรสำรองข้อมูล tail tail ก่อนที่จะกู้คืน: หากฐานข้อมูลออนไลน์และคุณวางแผนที่จะดำเนินการกู้คืนข้อมูลในฐานข้อมูลให้เริ่มต้นด้วยการสำรองข้อมูลส่วนท้ายของบันทึก เพื่อหลีกเลี่ยงข้อผิดพลาดสำหรับฐานข้อมูลออนไลน์คุณต้องใช้ตัวเลือก… WITH NORECOVERY ของคำสั่ง BACKUP Transact-SQL อันตรายหรือข้อเสียของวิธีที่ฉันทำมีอะไรบ้าง ทำไมการสำรองข้อมูล tail tail ไว้ก่อนจึงเป็นประโยชน์กับฉัน ฉันใช้ SQL Server 2008R2 แต่ฉันสันนิษฐานว่าแบบสอบถามนี้จะเกี่ยวข้องกับ SQL Server รุ่นใหม่กว่าส่วนใหญ่ดังนั้นจึงไม่ได้ติดแท็กเป็นเช่นนั้นในตอนแรก

1
วิธีที่ง่ายที่สุดในการแก้ไขรายการเดียวในคอลัมน์ XML?
เนื่องจากฉันเข้าใจ MS SQL Server Management Studio ไม่อนุญาตให้แก้ไข / แทนที่รายการในคอลัมน์ XML ผ่าน GUI โดยตรง (คัดลอก / วางไม่ทำงาน ฯลฯ ) ตัวเลือกที่ง่ายที่สุดในการแทนที่รายการเดียวในคอลัมน์ XML คืออะไร ฉันต้องใช้สิ่งที่แตกต่างจาก UPDATE / REPLACE สำหรับค่าคอลัมน์ XML หรือไม่

1
ALTER TABLE … SWITCHing จากตารางปกติไปยังตารางที่แบ่งพาร์ติชันล้มเหลว
รหัสด้านล่างทำสิ่งต่อไปนี้: สร้างฐานข้อมูล play_partition ใน C: \ TEMP สร้างสองตารางที่แบ่งพาร์ติชันเหมือนกันคือ play_table และ archive_play_table สลับพาร์ติชัน play_table 1 ไปยังไฟล์เก็บถาวรพาร์ติชัน 1 1 สร้าง temp_table แบบไม่แบ่งพาร์ติชั่นใหม่ที่มีโครงสร้างเดียวกันกับ play_table บนกลุ่มไฟล์เดียวกันกับ play_table partition 2 สลับ play_table_partition 2 เป็น temp_table พยายามเปลี่ยน temp_table กลับไปที่ play_table partition 2 และล้มเหลวด้วย ข่าวสารเกี่ยวกับ 4982 ระดับ 16 สถานะ 1 บรรทัด 64 คำสั่ง ALTER TABLE SWITCH ล้มเหลว …

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.