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

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

6
ตระกูลสื่อบนอุปกรณ์เกิดขึ้นไม่ถูกต้อง SQL Server ไม่สามารถประมวลผลตระกูลสื่อนี้
ฉันพยายามกู้คืน. BAK ในเซิร์ฟเวอร์ SQL แต่ได้รับข้อผิดพลาดต่อไปนี้: ข่าวสารเกี่ยวกับ 3241, ระดับ 16, สถานะ 7, สาย 1 ตระกูลสื่อบนอุปกรณ์ 'c: \ glyn \ JA.bak' เกิดขึ้นไม่ถูกต้อง SQL Server ไม่สามารถประมวลผลตระกูลสื่อนี้ ข่าวสารเกี่ยวกับ 3013 ระดับ 16 สถานะ 1 บรรทัด 1 ฐานข้อมูลการคืนค่าถูกยกเลิกอย่างผิดปกติ ฉันได้ลองกู้คืนโดยใช้ 2012, 2008 และแม้กระทั่งปี 2005 แต่ไม่มีอะไรทำงานฉันได้ใช้แบบสอบถามต่อไปนี้และผ่านTasks >> Back upแต่ไม่มีอะไรทำงานนี่คือ SQL ของฉัน: RESTORE DATABASE JA FROM DISK='c:\glyn\JA.bak' ไม่มีใครมีข้อเสนอแนะใด ๆ …

4
ฉันจะระบุคอลัมน์ที่รับผิดชอบ "ข้อมูลสตริงหรือไบนารีจะถูกตัดทอนได้อย่างไร"
ฉันกำลังสร้างการสืบค้นบางอย่างโดยอัตโนมัติด้วยรหัสที่ฉันเขียนถึง SELECT จากฐานข้อมูล Pg ระยะไกลและแทรกลงในฐานข้อมูล SQL Server ท้องถิ่น อย่างไรก็ตามหนึ่งในนั้นกำลังสร้างข้อผิดพลาดนี้: [Microsoft] [โปรแกรมควบคุมเซิร์ฟเวอร์ ODBC SQL] [เซิร์ฟเวอร์ SQL] สตริงหรือข้อมูลไบนารีจะถูกตัดทอน (SQL-22001) [สถานะเป็น 22001 ตอนนี้ 01000] [Microsoft] [โปรแกรมควบคุมเซิร์ฟเวอร์ ODBC SQL] [เซิร์ฟเวอร์ SQL] คำสั่งถูกยกเลิก (SQL-01000) ที่. \ insert.pl บรรทัด 106 ฉันจะค้นหาคอลัมน์ใดที่ทำให้เกิดข้อผิดพลาดนั้นและไม่มีความยาวสำหรับอินพุตได้อย่างไร มีวิธีการทำเช่นนี้โดยไม่คาดเดาสัตว์เดรัจฉานvarcharหรือไม่?

3
เพื่อประสิทธิภาพที่สมบูรณ์ SUM จะเร็วขึ้นหรือ COUNT หรือไม่
invoice amount > $100นี้เกี่ยวข้องกับการนับจำนวนของระเบียนที่ตรงกับเงื่อนไขบางอย่างเช่น ฉันมักจะชอบ COUNT(CASE WHEN invoice_amount > 100 THEN 1 END) อย่างไรก็ตามนี่เป็นเพียงที่ถูกต้อง SUM(CASE WHEN invoice_amount > 100 THEN 1 ELSE 0 END) ฉันคิดว่า COUNT นั้นดีกว่าด้วยเหตุผล 2 ประการ: บ่งบอกถึงความตั้งใจซึ่งก็คือ COUNT COUNT อาจเกี่ยวข้องกับการi += 1ดำเนินการอย่างง่ายที่ไหนสักแห่งในขณะที่ SUM ไม่สามารถพึ่งพาการแสดงออกที่จะเป็นค่าจำนวนเต็มง่าย ใครบ้างมีข้อเท็จจริงเฉพาะเกี่ยวกับความแตกต่างของ RDBMS ที่เฉพาะเจาะจงหรือไม่

3
สถานการณ์การใช้งานที่ถูกต้องสำหรับตาราง HEAP คืออะไร
ขณะนี้ฉันกำลังนำเข้าข้อมูลบางอย่างไปยังระบบดั้งเดิมและพบว่าระบบนี้ไม่ได้ใช้ดัชนีคลัสเตอร์เดียว การค้นหาโดย Google อย่างรวดเร็วแนะนำให้ฉันรู้จักกับแนวคิดของตาราง HEAP และตอนนี้ฉันอยากรู้ว่าในสถานการณ์การใช้งานใดที่ควรใช้ตาราง HEAP บนตารางคลัสเตอร์มากกว่านี้ เท่าที่ฉันเข้าใจตาราง HEAP จะมีประโยชน์สำหรับตารางการตรวจสอบและ / หรือตำแหน่งที่แทรกเกิดขึ้นบ่อยกว่าการเลือก มันจะประหยัดพื้นที่ดิสก์และดิสก์ I / O เนื่องจากไม่มีดัชนีคลัสเตอร์ที่ต้องบำรุงรักษาและการแตกแฟรกเมนต์เพิ่มเติมจะไม่เป็นปัญหาเนื่องจากการอ่านที่หายากมาก

6
โหลดบาลานซ์ด้วย SQL Server
สิ่งที่มีอยู่ในปัจจุบันในการทำ Microsoft SQL Server Load Balancing บน Windows Server และโปร่งใสในการเข้าถึงด้วยโปรแกรม สิ่งนี้มีอยู่ในตัวหรือไม่ต้องซื้อโซลูชันหรือไม่ ฉันพยายามที่จะหาว่ามีวิธีแก้ปัญหาในวันนี้ที่ทำให้ง่ายมากจากมุมมองของเว็บเซิร์ฟเวอร์หรือการเข้าถึงฐานข้อมูลอื่น ๆ ไปยัง SQL Server
31 sql-server 

5
ปรับปรุงประสิทธิภาพที่ไม่มีข้อมูลเปลี่ยนแปลง
ถ้าฉันมีUPDATEคำสั่งที่ไม่ได้เปลี่ยนข้อมูลใด ๆ (เพราะข้อมูลอยู่ในสถานะที่ปรับปรุงแล้ว) มีประโยชน์ด้านประสิทธิภาพใด ๆ ในการวางการตรวจสอบในWHEREข้อเพื่อป้องกันการอัพเดตหรือไม่? ตัวอย่างเช่นจะมีความแตกต่างในความเร็วการดำเนินการระหว่าง UPDATE 1 และ UPDATE 2 ในสิ่งต่อไปนี้: CREATE TABLE MyTable (ID int PRIMARY KEY, Value int); INSERT INTO MyTable (ID, Value) VALUES (1, 1), (2, 2), (3, 3); -- UPDATE 1 UPDATE MyTable SET Value = 2 WHERE ID = 2 AND Value <> …

2
ฉันจะวางข้อ จำกัด ทั้งหมดจากตารางทั้งหมดได้อย่างไร
ฉันต้องการปล่อยข้อ จำกัด เริ่มต้นทั้งหมดตรวจสอบข้อ จำกัด ข้อ จำกัด เฉพาะคีย์หลักและคีย์ต่างประเทศจากตารางทั้งหมดในฐานข้อมูล SQL Server ฉันรู้วิธีรับชื่อข้อ จำกัด ทั้งหมดsys.objectsแต่ฉันจะเติมALTER TABLEส่วนได้อย่างไร

4
ความเร็วสัญญาณนาฬิกาของ CPU เทียบกับจำนวนแกนประมวลผลหลัก - สูงกว่า GHz หรือแกนประมวลผลเพิ่มเติมสำหรับ SQL Server
เราเริ่มเตรียมชุดฟิสิคัลเซิร์ฟเวอร์สำหรับคลัสเตอร์เสมือนของโหนด SQL Server 2016 ภายใน VMware เราจะใช้สิทธิ์การใช้งาน Enterprise Edition เราวางแผนที่จะตั้งค่า 6 โหนด แต่มีการถกเถียงกันเล็กน้อยเกี่ยวกับวิธีที่เหมาะสมที่สุดในการจัดเตรียมเซิร์ฟเวอร์ทางกายภาพที่เกี่ยวกับความเร็วสัญญาณนาฬิกาของ CPU เทียบกับจำนวนหลักของ CPU ฉันรู้ว่าส่วนใหญ่ขึ้นอยู่กับปริมาณธุรกรรมและจำนวนฐานข้อมูลที่เก็บไว้ในปัจจัยเฉพาะซอฟต์แวร์อื่น ๆ แต่มีกฎทั่วไปที่แนะนำหรือไม่ ตัวอย่างเช่นเซิร์ฟเวอร์ฟิสิคัลแบบ dual-core 8-core, 3.2 GHz (16 คอร์) เป็นสิทธิพิเศษสำหรับเซิร์ฟเวอร์ 16-core, 16 GHz แบบคู่ 16 แกน (32 คอร์) หรือไม่? มีใครบ้างที่พบกระดาษสีขาวที่นำเสนอหัวข้อประเภทนี้เพิ่มเติมหรือไม่

1
เหตุใดการสแกนจึงเร็วกว่าการค้นหาคำนี้
ฉันสามารถสร้างปัญหาประสิทธิภาพการสืบค้นที่ฉันจะอธิบายได้อย่างไม่คาดคิด ฉันกำลังมองหาคำตอบที่มุ่งเน้นไปที่ภายใน บนเครื่องของฉันเคียวรีต่อไปนี้ทำการสแกนดัชนีแบบคลัสเตอร์และใช้เวลาประมาณ 6.8 วินาทีของเวลา CPU: SELECT ID1, ID2 FROM two_col_key_test WITH (FORCESCAN) WHERE ID1 NOT IN ( N'1', N'2',N'3', N'4', N'5', N'6', N'7', N'8', N'9', N'10', N'11', N'12',N'13', N'14', N'15', N'16', N'17', N'18', N'19', N'20' ) AND (ID1 = N'FILLER TEXT' AND ID2 >= N'' OR (ID1 > N'FILLER …

6
ความเข้ากันได้ของ SQL Server กับมาตรฐาน TLS ใหม่
เบราว์เซอร์หลักเคลื่อนไหวเกิน SSL3.0 และ TLS1.0 PCI Security Council ได้ประกาศวันที่หมดอายุการใช้งานสำหรับโปรโตคอลเหล่านี้ที่จะพิจารณาว่ามีการเข้ารหัสที่แข็งแกร่งเพียงพอ เราจำเป็นต้องย้ายออกจากโปรโตคอลเหล่านี้เพื่อใช้ใหม่และแข็งแรงกว่า บนเซิร์ฟเวอร์ Windows คุณสามารถปิดใช้งานโปรโตคอลเก่าเหล่านี้ได้อย่างง่ายดายและเสนอ TLS1.1 หรือสูงกว่าแทน อย่างไรก็ตามตามที่ระบุไว้ที่อื่น Microsoft SQL Server 2008 R2 และ SQL Server 2012 (มาตรฐานอย่างน้อยที่สุด) ทั้งคู่จะไม่เริ่มทำงานหากปิดใช้งานโปรโตคอลที่ต่ำกว่า อย่างไรก็ตามมี MS SQL Server เวอร์ชันที่เพิ่มขึ้นเรื่อย ๆ มี SQL Server Standard, Business Intelligence, Enterprise, Express, Web และ Compact Editions และแน่นอนว่ามี SQL Server 2008, 2012, 2014 …

2
วิธีการเปลี่ยนจาก SQL Server DBA เป็น Oracle
หากฉันต้องการเปลี่ยนจาก SQL Server DBA ไปเป็น Oracle สิ่งที่จะเป็นการเรียนรู้ที่สำคัญหรือไม่น่าสนใจที่ฉันต้องทำ ฉันคิดว่าแนวคิดเหมือนกันและความแตกต่างเป็นเพียงภาษาโปรแกรม แต่ฉันไม่ได้เห็นอีกด้านหนึ่งของประตู

8
IntelliSense ไม่ทำงาน แต่เปิดใช้งานแล้ว
ปัญหานี้พิสูจน์ให้เห็นแล้วว่าเป็นเรื่องยุ่งยาก (และค่อนข้างน่ารำคาญ) ใน SQL Server Management Studio 2008 จนถึงไม่กี่วันที่ผ่านมา IntelliSense ของฉันทำงานได้ดี ทันใดนั้นมันก็หยุด ไอคอนตามที่เปิดใช้งานบนเมนูแถบเครื่องมือและภายใต้เครื่องมือ -> ตัวเลือก -> ตัวแก้ไขข้อความ -> T-SQL -> IntelliSense ระบุว่ามีการเปิดใช้งานที่นั่น ฉันลอง refeshing แคช IntelliSense ด้วย Ctrl-Shft-R แต่ก็ไม่ได้ผลเหมือนกัน ความคิดใด ๆ ที่เกิดขึ้นกับ IntelliSense ของฉันและสิ่งที่ฉันต้องทำเพื่อให้ได้กลับมา?

5
เหตุใดจึงใช้ int เป็นคีย์หลักของตารางการค้นหา
ฉันต้องการทราบว่าเหตุใดฉันจึงควรใช้ int เป็นคีย์หลักของตารางการค้นหาแทนที่จะใช้ค่าการค้นหาเป็นคีย์หลัก (ซึ่งส่วนใหญ่จะเป็นสตริง) ฉันเข้าใจว่าการใช้ nvarchar (50) แทนที่จะเป็น int จะใช้วิธีเพิ่มพื้นที่ว่างถ้ามันถูกเชื่อมโยงกับตารางที่มีเรกคอร์ดจำนวนมาก ในทางกลับกันการใช้ค่าการค้นหาโดยตรงโดยทั่วไปจะช่วยให้เราทำการเข้าร่วม ฉันสามารถจินตนาการว่านี่จะเป็นการประหยัดที่ยิ่งใหญ่หากจำเป็นต้องเข้าร่วมเสมอ (เรากำลังทำงานกับเว็บแอปดังนั้นสิ่งนี้นับได้ค่อนข้างน้อย) อะไรคือข้อดีของการใช้คีย์หลัก int (โดยเฉพาะสำหรับตารางการค้นหา) นอกเหนือจากการเป็น "สิ่งมาตรฐานที่ต้องทำ"?

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

4
วิธีการย้ายฐานข้อมูลจาก SQL Server 2012 ไปยัง SQL Server 2005
ตัวเลือกของฉันคืออะไรถ้าฉันต้องการย้ายฐานข้อมูลจาก SQL Server 2012 (32 บิต) ไปยัง SQL Server 2005 (64 บิต) ฉันรู้ว่าฉันไม่สามารถ: คืนค่าการสำรองข้อมูลของฐานข้อมูลบน SQL Server 2005 แยกออกและแนบ ฉันรู้ว่าฉันสามารถ: ใช้ตัวช่วยสร้างการนำเข้าข้อมูลและฉันลองใช้กับฐานข้อมูลเดียว แต่ย้ายข้อมูลเท่านั้นและแม้จะเป็นปัญหาเพราะฉันต้องทำงานมากในการสร้างตาราง temp เพื่อรักษาคอลัมน์ข้อมูลประจำตัวสร้าง FKs ใหม่ทั้งหมดดัชนีเป็นต้น มีตัวเลือกง่ายขึ้นไหม

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