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

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

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

4
LocalDB v14 สร้างเส้นทางที่ผิดสำหรับไฟล์ mdf
เมื่อเร็ว ๆ นี้ฉันอัพเกรด LocalDB จากรุ่น 13 เป็น 14 โดยใช้โปรแกรมติดตั้ง SQL Server Express และคำสั่งนี้ หลังจากการติดตั้งฉันหยุดอินสแตนซ์เริ่มต้นที่มีอยู่ (MSSQLLOCALDB) เวอร์ชัน 13 และสร้างขึ้นใหม่ซึ่งใช้เอ็นจิ้นเซิร์ฟเวอร์ v14.0.1000 โดยอัตโนมัติ ฉันมักจะใช้การทดสอบ LocalDB for Database Integration เช่นในการทดสอบ xunit ของฉันฉันสร้างฐานข้อมูล (ชั่วคราว) ซึ่งจะถูกลบเมื่อการทดสอบเสร็จสิ้น ตั้งแต่เวอร์ชันใหม่โชคไม่ดีที่การทดสอบทั้งหมดของฉันล้มเหลวเนื่องจากข้อความแสดงข้อผิดพลาดต่อไปนี้: สร้างไฟล์พบข้อผิดพลาดของระบบปฏิบัติการ 5 (ปฏิเสธการเข้าถึง) ในขณะที่พยายามเปิดหรือสร้างไฟล์ฟิสิคัล 'C: \ Users \ kepflDBd0811493e18b46febf980ffb8029482a.mdf' สิ่งแปลกคือเส้นทางเป้าหมายสำหรับไฟล์ mdf ไม่ถูกต้องแบ็กสแลชหายไประหว่างC: \ Users \ kepflและDBd0811493e18b46febf980ffb8029482a.mdf (ซึ่งเป็นชื่อฐานข้อมูลแบบสุ่มสำหรับการทดสอบเดี่ยว) ฐานข้อมูลถูกสร้างผ่านคำสั่งง่าย ๆCREATE …

3
เหตุใดแบบสอบถามแบบ SELECT จะทำให้เกิดการเขียน
ฉันสังเกตว่าบนเซิร์ฟเวอร์ที่ใช้ SQL Server 2016 SP1 CU6 บางครั้งเซสชันเพิ่มเติมของกิจกรรมจะแสดงคิวรี SELECT ซึ่งทำให้เกิดการเขียน ตัวอย่างเช่น: แผนการดำเนินการไม่แสดงสาเหตุที่ชัดเจนสำหรับการเขียนเช่นตารางแฮชสปูลหรือการเรียงลำดับที่สามารถรั่วไหลไปที่ TempDB: การกำหนดตัวแปรให้กับประเภท MAX หรือการอัปเดตสถิติอัตโนมัติอาจทำให้เกิดสิ่งนี้ได้เช่นกัน แต่ก็ไม่ได้เป็นสาเหตุของการเขียนในกรณีนี้ การเขียนอาจมาจากอะไรอีก?

4
เหตุใด SQL Server จึงส่งคืนแถวบางแถวขณะที่ยังดำเนินการค้นหาและบางครั้งไม่
มีข้อความค้นหาที่เมื่อเรากด "execute" มันจะแสดงบางแถวและมันจะเพิ่มขึ้นเรื่อย ๆ แต่แบบสอบถามนั้นยังไม่จบ แต่บางครั้งมันจะรอจนกว่าจะสิ้นสุดการสืบค้น ทำไมสิ่งนี้ถึงเกิดขึ้น มีวิธีควบคุมสิ่งนี้หรือไม่?
33 sql-server  ssms 

4
ประสิทธิภาพของเซิร์ฟเวอร์ SQL ช้าลงหลังจากจัดสรร CPU และ RAM เพิ่มเติม
เรามี SQL Server 2008 R2 (10.50.1600) ที่ทำงานบนเซิร์ฟเวอร์ Windows 2008 R2 เสมือน หลังจากอัปเกรด CPU จาก 1 คอร์เป็น 4 และแรมจาก 4 gb เป็น 10 gb เราได้สังเกตเห็นว่าประสิทธิภาพแย่ลง ข้อสังเกตบางอย่างที่ฉันเห็น: ข้อความค้นหาที่ใช้เวลา <5 วินาทีในการทำงาน> 200 วินาที ซีพียูถูกตรึงที่ 100 กับ sqlservr.exe เป็นผู้ร้าย จำนวนที่เลือก (*) บนตารางที่มี 4.6 ล้านแถวใช้เวลามากกว่า 90 วินาที กระบวนการที่ทำงานบนเซิร์ฟเวอร์ไม่ได้เปลี่ยนแปลง การเปลี่ยนแปลงเพียงอย่างเดียวคือการเพิ่มซีพียูและแรม เซิร์ฟเวอร์ sql อื่นมีไฟล์เก็บเพจแบบสแตติกซึ่งเซิร์ฟเวอร์นี้ถูกตั้งค่าให้จัดการด้วยตนเอง มีใครประสบปัญหานี้มาก่อนหรือไม่ ต่อ sp_Blitz …

1
การตั้งค่า BUFFERCOUNT, BLOCKSIZE และ MAXTRANSFERSIZE สำหรับคำสั่ง BACKUP
ฉันกำลังมองหาการปฏิบัติคำแนะนำสำหรับการตั้งค่าสำหรับBUFFERCOUNT, BLOCKSIZEและMAXTRANSFERSIZEของBACKUPคำสั่ง ฉันได้ทำการวิจัยนิดหน่อย (ดูด้านล่าง) ฉันได้ทำการทดสอบแล้วและฉันก็ตระหนักดีว่าคำตอบที่มีค่าอย่างแท้จริงจะเริ่มต้นด้วย "ดีขึ้นอยู่กับ ... " ความกังวลของฉันเกี่ยวกับการทดสอบที่ฉันได้ทำและการทดสอบที่แสดงในแหล่งข้อมูลใด ๆ ที่ฉันได้พบ (ดูวิธีด้านล่าง) คือการทดสอบจะทำในสุญญากาศซึ่งเป็นไปได้มากที่สุดในระบบที่ไม่มีโหลดอื่น ๆ ฉันอยากรู้เกี่ยวกับแนวทางที่ถูกต้อง / แนวปฏิบัติที่ดีที่สุดเกี่ยวกับสามตัวเลือกเหล่านี้ซึ่งยึดตามประสบการณ์ระยะยาว: มีจุดข้อมูลจำนวนมากในช่วงสัปดาห์หรือเป็นเดือน และฉันไม่ได้มองหาค่าที่เฉพาะเจาะจงเนื่องจากส่วนใหญ่เป็นฟังก์ชั่นของฮาร์ดแวร์ที่มีอยู่ แต่ฉันต้องการที่จะรู้ว่า: ปัจจัยฮาร์ดแวร์ / โหลดที่หลากหลายมีผลต่อสิ่งที่ควรทำ มีสถานการณ์ใดบ้างที่ไม่ควรแทนที่ค่าเหล่านี้? มีข้อผิดพลาดในการเอาชนะสิ่งเหล่านี้ที่ไม่ชัดเจนในทันทีหรือไม่? ใช้หน่วยความจำและ / หรือดิสก์ I / O มากเกินไปหรือไม่ มีความซับซ้อนในการกู้คืนการดำเนินการ? ถ้าฉันมีเซิร์ฟเวอร์ที่มีหลายอินสแตนซ์ของ SQL Server ทำงาน (เป็นค่าเริ่มต้นอินสแตนซ์และสองอินสแตนซ์ที่มีชื่อ) และหากฉันใช้การสำรองข้อมูลของทั้ง 3 อินสแตนซ์พร้อม ๆ กันไม่ว่าส่งผลกระทบต่อวิธีการที่ฉันตั้งค่าเหล่านี้เกินกว่าการทำให้แน่ใจว่าส่วนรวม ( BUFFERCOUNT* MAXTRANSFERSIZE) ไม่เกิน RAM ที่มีอยู่หรือไม่ การต่อสู้ …

2
ISO Week กับ SQL Server Week
โอเคฉันมีรายงานที่ทำเปรียบเทียบสัปดาห์นี้กับสัปดาห์ที่แล้วและลูกค้าของเราสังเกตเห็นว่าข้อมูลของพวกเขานั้น "ขี้ขลาด" จากการตรวจสอบเพิ่มเติมเราพบว่ามันไม่ได้ทำอย่างถูกต้องเป็นสัปดาห์ตามมาตรฐาน ISO ฉันรันสคริปต์นี้เป็นกรณีทดสอบ SET DATEFIRST 1 SELECT DATEPART(WEEK, '3/26/13') , DATEPART(WEEK, '3/27/12') , DATEPART(WEEK, '3/20/12') , DATEPART(WEEK, '1/2/12') SELECT DATEPART(ISO_WEEK, '3/26/13') , DATEPART(ISO_WEEK, '3/27/12') , DATEPART(ISO_WEEK, '3/20/12') , DATEPART(ISO_WEEK, '1/2/12') เมื่อรันฉันจะได้ผลลัพธ์เหล่านี้ ฉันคิดว่านี่เป็นเรื่องแปลกและดังนั้นฉันจึงขุดเพิ่มเติมและพบว่า SQL Server นับ 1 มกราคมเป็นสัปดาห์แรกของปีที่ ISO นับวันอาทิตย์แรกของเดือนมกราคมเป็นสัปดาห์แรกของปี คำถามนั้นจบลงด้วยการเป็นสองเท่า คำถามที่ 1 ทำไมนี่คืออะไร คำถามที่ 2 มีวิธีใดบ้างที่จะเปลี่ยนแปลงสิ่งนี้ดังนั้นฉันไม่ต้องแก้ไขโค้ดทั้งหมดเพื่อใช้ในISO_Weekทุกที่ใช่ไหม

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

7
ฉันจะทราบได้อย่างไรว่าฐานข้อมูล SQL Server ยังคงถูกใช้อยู่
เรากำลังมองหาการรื้อถอนอินสแตนซ์ของ SQL Server ที่ยังมีฐานข้อมูลอยู่สองสามตัว ฉันจะรู้ได้อย่างไรว่าผู้ใช้หรือแอปพลิเคชันเว็บยังคงใช้งานอยู่หรือไม่ ฉันพบเธรดฟอรัมซึ่งมีเคียวรี T-SQL ที่คุณสามารถเรียกใช้เพื่อดึงวันที่สืบค้นล่าสุด ดูเหมือนว่าจะใช้งานได้ แต่ฉันต้องการทราบว่าข้อมูลนี้ถูกต้องเพียงพอที่จะลบฐานข้อมูลหรือไม่ ใช่ไหม? หากคุณมีวิธีการอื่นที่จะช่วยเช่นกัน
33 sql-server  t-sql 

2
การใช้ข้อยกเว้นในนิพจน์ตารางแบบเรียกซ้ำ
เหตุใดแบบสอบถามต่อไปนี้จึงส่งกลับแถวที่ไม่มีที่สิ้นสุด ฉันคาดว่าจะมีEXCEPTประโยคที่จะยุติการสอบถามซ้ำ .. with cte as ( select * from ( values(1),(2),(3),(4),(5) ) v (a) ) ,r as ( select a from cte where a in (1,2,3) union all select a from ( select a from cte except select a from r ) x ) select a from r ฉันเจอสิ่งนี้ในขณะที่พยายามตอบคำถามเกี่ยวกับ …

2
ลำดับของคอลัมน์ในดัชนี PK มีความสำคัญหรือไม่?
ฉันมีตารางที่มีขนาดใหญ่มากไม่กี่แห่งที่มีโครงสร้างพื้นฐานแบบเดียวกัน แต่ละคนมีRowNumber (bigint)และDataDate (date)คอลัมน์ ข้อมูลถูกโหลดโดยใช้ SQLBulkImport ทุกคืนและไม่มีการโหลดข้อมูล "ใหม่" - บันทึกประวัติ (SQL Standard ไม่ใช่ Enterprise ดังนั้นจึงไม่มีการแบ่งพาร์ติชัน) เนื่องจากข้อมูลแต่ละบิตจำเป็นต้องเชื่อมโยงกลับไปที่ระบบอื่น ๆ และการRowNumber/DataDateรวมกันแต่ละครั้งไม่ซ้ำกันนั่นคือคีย์หลักของฉัน ฉันสังเกตเห็นว่าเนื่องจากวิธีที่ฉันกำหนด PK ใน SSMS Table Designer RowNumberแสดงรายการที่หนึ่งและDataDateสอง ฉันยังสังเกตเห็นว่าการกระจายตัวของฉันมักจะสูงมาก ~ 99% ตอนนี้เพราะแต่ละรายการDataDateปรากฏเพียงครั้งเดียวฉันคาดว่าเครื่องมือสร้างดัชนีจะเพิ่มไปยังหน้าเว็บในแต่ละวัน แต่ฉันสงสัยว่าจริง ๆ แล้วการจัดทำดัชนีอิงตามลำดับRowNumberแรกหรือไม่และต้องเปลี่ยนทุกอย่างอื่นหรือไม่ Rownumberไม่ใช่คอลัมน์ข้อมูลประจำตัว แต่เป็น int ที่สร้างขึ้นโดยระบบภายนอก (น่าเศร้า) DataDateมันรีเซ็ตในช่วงเริ่มต้นของแต่ละคน ตัวอย่างข้อมูล RowNumber | DataDate | a | b | c..... 1 |2013-08-01| …

5
ผู้ประกอบการเชิงตรรกะหรือและในสภาพและคำสั่งของเงื่อนไขในที่
ตรวจสอบข้อความทั้งสองนี้: IF (CONDITION 1) OR (CONDITION 2) ... IF (CONDITION 3) AND (CONDITION 4) ... ถ้าCONDITION 1เป็นTRUEจะCONDITION 2ถูกตรวจสอบ? ถ้าCONDITION 3เป็นFALSEจะCONDITION 4ถูกตรวจสอบ? สิ่งที่เกี่ยวกับเงื่อนไขWHERE: เครื่องยนต์ SQL Server ปรับเงื่อนไขทั้งหมดในWHEREข้อ? โปรแกรมเมอร์ควรวางเงื่อนไขในลำดับที่ถูกต้องเพื่อให้แน่ใจว่าเครื่องมือเพิ่มประสิทธิภาพ SQL Server แก้ไขได้อย่างถูกต้องหรือไม่? เพิ่ม: ขอบคุณแจ็คสำหรับลิงก์แปลกใจจากรหัส t-sql: IF 1/0 = 1 OR 1 = 1 SELECT 'True' AS result ELSE SELECT 'False' AS result …

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

4
ฉันจะรับขนาดข้อมูลจริงต่อแถวในตาราง SQL Server ได้อย่างไร
ฉันพบสคริปต์นี้ sql-server-2005-reach-table-row-row-size-limit ที่ดูเหมือนจะส่งคืนขนาดแถวตามความยาวประเภทข้อมูลที่กำหนดไว้ ฉันต้องการสคริปต์ที่จะให้แถวทั้งหมดในตารางที่ขนาดข้อมูลสูงสุดของพวกเขามากกว่า 8024 ที่แนะนำ (สิ่งที่ MS แนะนำ)
33 sql-server 

7
คัดลอกโครงสร้างที่สมบูรณ์ของตาราง
ใช้วิธีการบางอย่างเมื่อคุณสร้างสำเนาของตารางที่คุณสูญเสียดัชนี, PK, FK เป็นต้นตัวอย่างเช่นใน SQL Server ฉันสามารถพูดได้: select * into dbo.table2 from dbo.table1; นี่เป็นเพียงสำเนาอย่างง่ายของตาราง ดัชนี / ข้อ จำกัด ทั้งหมดหายไป ฉันจะคัดลอกโครงสร้างตาราง (โดยไม่ใช้การสำรองข้อมูล) ได้อย่างไร ฉันกำลังมองหาที่จะทำด้วยตนเองเป็นหลัก แต่ถ้าเป็นไปไม่ได้ที่ฉันจะยอมรับวิธีการแก้ปัญหาใด ๆ

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