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

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

4
ผู้ดูแลระบบเพียงคนเดียวเท่านั้นที่สามารถเชื่อมต่อได้ในขณะนี้ (MS SQL Server 18461 error)
ฉันกำลังทดลองผลของการให้ SQL Server มีหน่วยความจำเพียงเล็กน้อยที่ฉันคิดว่ามันกำลังจะกู้คืน ฉันกำหนดค่า SQL Server ให้ใช้หน่วยความจำ 200MB ในขณะนี้ไม่ต้องการเริ่มต้นฉันค้นหาบางอย่างบนอินเทอร์เน็ตและฉันแนะนำให้เริ่ม SQL Server ในโหมดผู้ใช้คนเดียว อย่างไรก็ตามฉันได้รับข้อผิดพลาด การเข้าสู่ระบบล้มเหลวสำหรับผู้ใช้ A. เหตุผล: เซิร์ฟเวอร์อยู่ในโหมดผู้ใช้คนเดียว ผู้ดูแลระบบเพียงคนเดียวเท่านั้นที่สามารถเชื่อมต่อได้ในขณะนี้ (Microsoft SQL Server, ข้อผิดพลาด: 18461) ฉันหยุดตัวแทนเซิร์ฟเวอร์ SQL
14 sql-server 

1
จำนวนการกระทำที่ถูกผูกไว้สูงสุดที่อนุญาตสำหรับเหตุการณ์ที่ขยายคืออะไร
หากคุณเพิ่มการกระทำ "มากเกินไป" ให้กับกิจกรรมในเซสชันกิจกรรมคุณจะได้รับข้อผิดพลาดนี้: ข่าวสารเกี่ยวกับ 25639, ระดับ 16, สถานะ 23, บรรทัด 1 เหตุการณ์ "[ชื่อเหตุการณ์]" เกินจำนวนการดำเนินการที่ผูกไว้ที่อนุญาต อนุญาตให้มีการกระทำกี่ครั้ง มันแตกต่างกันไปตามเหตุการณ์? คำตอบขึ้นอยู่กับการทดลองดูเหมือนจะเป็น sqlserver.rpc_completed27 แต่ฉันไม่ได้พบหมายเลขบนใด ๆ ที่เอกสารไมโครซอฟท์ และดูเหมือนว่าจะแตกต่างกันไปจากเหตุการณ์ที่ผมก็สามารถที่จะได้รับ sqlserver.sql_batch_completed30 รหัสตัวอย่างที่ล้มเหลว: CREATE EVENT SESSION [Test] ON SERVER ADD EVENT sqlserver.rpc_completed( ACTION( package0.callstack, package0.collect_cpu_cycle_time, package0.collect_current_thread_id, package0.collect_system_time, package0.event_sequence, package0.last_error, package0.process_id, sqlos.cpu_id, sqlos.numa_node_id, sqlos.scheduler_address, sqlos.scheduler_id, sqlos.system_thread_id, sqlos.task_address, sqlos.task_elapsed_quantum, sqlos.task_resource_group_id, sqlos.task_resource_pool_id, …

2
สแน็ปช็อตฐานข้อมูล SQL Server สำหรับการทดสอบการรวม
ฉันกำลังพยายามกำหนดวิธีการทำงานกับฐานข้อมูลทดสอบ (ใน SQL Server) สำหรับการทดสอบการรวมระบบของเรา ความคิดของฉันคือการทำตามขั้นตอนเหล่านี้ในการเปิดตัวชุดทดสอบการรวมระบบ: สร้างฐานข้อมูลที่ว่างเปล่าโดยสิ้นเชิง เรียกใช้สคริปต์ "สร้างวัตถุฐานข้อมูล" เพื่อสร้างวัตถุฐานข้อมูลที่เกี่ยวข้องทั้งหมด (ตารางมุมมองลำดับ ฯลฯ ) กรอก "ฐานข้อมูล" (ค่าการค้นหา ฯลฯ ) ถ่ายภาพฐานข้อมูลที่เรียกว่า(db)_Basis"เส้นฐาน" สำหรับการทดสอบการรวมระบบในอนาคต ตอนนี้ก่อนทุกคลาสการทดสอบ (ที่มีการทดสอบ 1-n) ฉันวางแผนที่จะทำการ "กู้คืนจากสแน็ปช็อต" เพื่อกลับไปยังสถานะ "ว่าง" ที่กำหนดไว้อย่างดีไม่มากก็น้อย ทำงานเหมือนจับใจจนถึงตอนนี้ อย่างไรก็ตามมีชุดของการทดสอบการรวมที่จำเป็นต้องใช้ในฐานข้อมูลการทดสอบขนาดใหญ่ - ดังนั้นฉันหวังว่าจะทำสิ่งนี้ก่อนที่จะทำการติดตั้งการทดสอบแต่ละชุด กู้คืนฐานข้อมูลจากส(db)_Basisแน็ปช็อต แทรกข้อมูล 50'000 + แถวเหล่านั้นลงในฐานข้อมูล สร้างสแน็(db)_With_Testdataปช็อตอื่น จากนั้นสำหรับการทดสอบแต่ละครั้งให้รีเซ็ตฐานข้อมูลเป็น(db)_With_Testdataเวอร์ชันสแน็ปช็อตที่กำหนดไว้อย่างดีรันการทดสอบตรวจสอบผลลัพธ์และอื่น ๆ ปัญหาคือ: ฉันดูเหมือนจะไม่สามารถมีสอง snapshots db ในเวลาเดียวกัน - เมื่อฉันฉันไม่สามารถคืนค่าฐานข้อมูลของฉันทั้งสอง .... ฉันได้รับข้อผิดพลาดนี้: ข่าวสารเกี่ยวกับ …

4
ความคืบหน้าของคำสั่ง SELECT INTO
โฟลว์ ETL ของเรามีคำสั่ง SELECT INTO ที่ดำเนินมายาวนานซึ่งสร้างตารางได้ทันทีและเติมข้อมูลด้วยหลายร้อยล้านเรคคอร์ด คำสั่งมีลักษณะเหมือน SELECT ... INTO DestTable FROM SrcTable เพื่อจุดประสงค์ในการตรวจสอบเราต้องการทราบคร่าวๆเกี่ยวกับความคืบหน้าของคำสั่งนี้ในขณะที่มันกำลังดำเนินการ (ประมาณ rowcount จำนวนไบต์ที่เขียนหรือคล้ายกัน) เราได้ลองทำสิ่งต่อไปนี้โดยไม่มีประโยชน์: -- Is blocked by the SELECT INTO statement: select count(*) from DestTable with (nolock) -- Returns 0, 0: select rows, rowmodctr from sysindexes with (nolock) where id = object_id('DestTable') -- Returns 0: …

4
เพิ่มการรวมอัตโนมัติลงใน PK ที่มีอยู่
ฉันสร้างตารางในฐานข้อมูลที่มีอยู่แล้วในฐานข้อมูลอื่น เริ่มแรกมีการเติมข้อมูลฐานข้อมูลเก่า PK ของตารางจะต้องได้รับค่าที่มีอยู่แล้วในบันทึกเหล่านั้นดังนั้นจึงไม่สามารถสร้างอัตโนมัติได้ ตอนนี้ฉันต้องการตารางใหม่เพื่อให้มี PK เป็น autoincrement แต่ฉันจะทำอย่างนั้นหลังจากที่มี PK อยู่แล้วและมีข้อมูลได้อย่างไร

6
จะส่งออกคอลัมน์ภาพเป็นไฟล์ใน SQL Server ได้อย่างไร
ฉันจะย้ายจากฐานข้อมูล มีหนึ่งประเภทคอลัมน์imageที่ฉันต้องการส่งออกไปยังไฟล์ไบนารีบนระบบไฟล์ หนึ่งไฟล์สำหรับแต่ละระเบียน ฉันจะทำสิ่งนี้กับ SQL Server ได้อย่างไร

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

1
SQL Server การจำลองแบบหลายต่อหนึ่ง
ฉันมีเครื่อง SQL Server 2008 R2 8 เครื่องแต่ละเครื่องแต่ละเครื่องโฮสต์ 1 ฐานข้อมูล แต่ละฐานข้อมูลมีโครงสร้างตารางที่เหมือนกันและสคีมาและข้อมูลที่ไม่ซ้ำทั้งหมด ฉันต้องการสร้างเซิร์ฟเวอร์การรายงาน (อาจเป็น 2008 หรือ 2012) ซึ่งรวมแถวจากตารางที่เลือกไว้ใน 8 เซิร์ฟเวอร์ต้นทางเป็นอินสแตนซ์เดียวของตารางเหล่านั้นบนเซิร์ฟเวอร์รายงาน นี่คือการจำลองแบบทางเดียว (จะไม่มีการเปลี่ยนแปลงกับเซิร์ฟเวอร์การรายงาน) ฉันจะต้องทำซ้ำการเปลี่ยนแปลงจากฐานข้อมูลต้นทางที่มีเวลาแฝงค่อนข้างต่ำ (ประมาณ 20-30 วินาที) นอกจากนี้ฉันต้องการค้นหาวิธีการเพื่อให้บรรลุผลนี้โดยมีผลกระทบเพียงเล็กน้อยต่อเซิร์ฟเวอร์ต้นทางตามจริง เอเจนต์บุคคลที่สามทริกเกอร์หรือสคีมา mods ไปยังเซิร์ฟเวอร์เหล่านั้นยากในสภาพแวดล้อมของฉัน คำถามของฉัน: สถาปัตยกรรมและเทคโนโลยีที่มีแนวโน้มในการบรรลุเป้าหมายนี้คืออะไร ฉันดู SQL Server Merge Replication แต่ฉันกังวลเรื่องเวลาในการตอบสนอง นี่เป็นเทคโนโลยีที่เหมาะสมสำหรับเป้าหมายนี้หรือไม่? มีสถาปัตยกรรมแบบหนึ่งต่อหนึ่งสำหรับการจำลองแบบของทรานแซคชันหรือไม่? ฉันควรดูการจำลองแบบ 1 ต่อ 1 เป็น 8 ฐานข้อมูลบนเซิร์ฟเวอร์การรายงานของฉันแล้วตามด้วยฟังก์ชันการผสานแบบกำหนดเอง (การจำลองแบบ 2 ขั้นตอน) ขอบคุณ John

5
บังคับให้ SQL Server รันเงื่อนไขการสืบค้นตามที่เขียนไว้หรือไม่
ฉันใช้ SQL Server 2008 R2 และฉันมีแบบสอบถามหลอก (SP) นี้: select ... from ... WHERE @LinkMode IS NULL AND (myColumn IN (...very long-running query...)) ... ... ปัญหาคือว่าแบบสอบถามใช้เวลานานมากในการดำเนินการ - แม้ว่าผมจะดำเนินการ SP @LinkMode=2ด้วย ดังที่คุณสังเกตเห็นเคียวรีที่รันนานควรถูกเรียกใช้งานต่อเมื่อ @LinkMode เป็นโมฆะซึ่งไม่ใช่กรณีที่นี่ ในกรณีของฉัน @LinkMode = 2! อย่างไรก็ตามหากฉันเปลี่ยนเป็น: select ... from ... WHERE 1=2 AND (myColumn IN (...very long time exeted …

4
คิวรีการบันทึกและ T-SQL อื่น ๆ
ฉันต้องการทราบว่า SQL Server 2008 R2 มีรูปแบบการบันทึกเริ่มต้นสำหรับSELECTคำสั่ง (หรือ T-SQL อื่น ๆ สำหรับเรื่องนั้น) ถ้าใช่ฉันจะดูได้ที่ไหน หากไม่มีฉันจะตั้งค่าได้อย่างไร

6
ปิดการใช้งานหน่วยความจำ SQL โดยบังเอิญต่ำเกินไปที่จะเข้าสู่ระบบฉันจะแก้ไขได้อย่างไร
ฉันปิดหน่วยความจำสูงสุดของอินสแตนซ์ SQL Server ของฉันเป็น 15 MB ... ตอนนี้ฉันไม่สามารถเข้าสู่ระบบเพื่อเพิ่มมันได้ ฉันจะเพิ่มหน่วยความจำสูงสุดโดยไม่ต้องเข้าสู่ระบบได้อย่างไร เวอร์ชันคือ SQL 2008 R2

2
เปอร์เซ็นต์ค่าใช้จ่ายใน SQL Server นี้วางแผนมากกว่า 100% ด้วยเหตุผลที่ถูกต้องหรือไม่?
ฉันกำลังมองผ่านแคชแผนมองหาผลไม้เพิ่มประสิทธิภาพที่แขวนต่ำและพบกับตัวอย่างนี้: ทำไมต้นทุนหลายรายการที่แสดงไว้สูงกว่า 100% ไม่ควรที่จะเป็นไปไม่ได้?

5
ข้อผิดพลาดเซิร์ฟเวอร์ที่เชื่อมโยงไม่ถูกจับโดย TRY-CATCH
ฉันกำลังตั้งค่างานเพื่อวนรอบรายการเซิร์ฟเวอร์ที่เชื่อมโยงและดำเนินการแบบสอบถามเฉพาะกับแต่ละรายการ ฉันพยายามที่จะดำเนินการค้นหาภายในบล็อก TRY-CATCH ดังนั้นหากมีปัญหากับเซิร์ฟเวอร์หนึ่งฉันสามารถเข้าสู่ระบบ แต่แล้วดำเนินการกับเซิร์ฟเวอร์อื่น ๆ แบบสอบถามที่ฉันกำลังดำเนินการภายในลูปมีลักษณะดังนี้: BEGIN TRY SELECT * FROM OPENQUERY([server1], 'SELECT 1 AS c;'); END TRY BEGIN CATCH SELECT ERROR_NUMBER(), ERROR_MESSAGE(); END CATCH; PRINT 'We got past the Catch block!'; หากมีปัญหาในการเชื่อมต่อกับเซิร์ฟเวอร์รหัสจะล้มเหลวทันทีและไม่ได้ถ่ายโอนไปยังCATCHบล็อก หากเซิร์ฟเวอร์เชื่อมต่อ แต่มีข้อผิดพลาดในแบบสอบถามจริงเช่นหารด้วยศูนย์จะมีการตรวจจับสิ่งนี้ตามที่คาดไว้โดยCATCHบล็อก ตัวอย่างเช่นฉันสร้างเซิร์ฟเวอร์ที่เชื่อมโยงกับชื่อที่ฉันรู้ว่าไม่มีอยู่ เมื่อดำเนินการข้างต้นฉันเพิ่งได้รับ: OLE DB provider "SQLNCLI" for linked server "nonserver" returned message "Login timeout …

1
ให้สิทธิ์ในการเลือกจากตารางระบบ
ฉันมีฐานข้อมูล Microsoft SQL Server 2008 r2 ผู้ใช้ชื่อ marie ถูกกำหนดผู้ที่สามารถเข้าถึงตารางในฐานข้อมูลหลัก มันใช้งานได้ดี ตอนนี้ฉันต้องการให้ marie สามารถทำแบบสอบถามนี้ได้: SELECT resource_type,spid,login_time,status,hostname,program_name,nt_domain,nt_username,loginame FROM sys.dm_tran_locks dl JOIN sys.sysprocesses sp on dl.request_session_id = sp.spid ตารางที่เกี่ยวข้องคือตารางต้นแบบ ฉันจะอนุญาตให้ marie อ่านจากพวกเขาได้อย่างไร ฉันได้ลองดำเนินการดังต่อไปนี้เป็น dbo: GRANT ALL on sys.dm_tran_locks TO marie GRANT ALL on sys.sysprocesses TO marie ยังคงเมื่อ marie พยายามที่จะดำเนินการค้นหาข้างต้นข้อผิดพลาดคือ: Msg 297, Level 16, …
14 sql-server 

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

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