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

Microsoft SQL Server เป็นระบบจัดการฐานข้อมูลเชิงสัมพันธ์ (RDBMS) ใช้แท็กนี้สำหรับ SQL Server ทุกรุ่นรวมถึง Compact, Express, Azure, Fast-track, APS (เดิมคือ PDW) และ Azure SQL DW อย่าใช้แท็กนี้สำหรับ DBMS ประเภทอื่น (MySQL, PostgreSQL, Oracle, ฯลฯ ) อย่าใช้แท็กนี้สำหรับปัญหาเกี่ยวกับซอฟต์แวร์และการพัฒนาอุปกรณ์พกพาเว้นแต่จะเกี่ยวข้องโดยตรงกับฐานข้อมูล

4
มีความแตกต่างด้านประสิทธิภาพระหว่าง CTE, Sub-Query, Temporary Table หรือ Table Variable หรือไม่?
ในคำถาม SO ที่ยอดเยี่ยมนี้ความแตกต่างระหว่างCTEและsub-queriesถูกกล่าวถึง ฉันต้องการถามเฉพาะ: แต่ละเหตุการณ์ต่อไปนี้มีประสิทธิภาพมากขึ้น / เร็วขึ้นในสถานการณ์ใด CTE แบบสอบถามย่อย ตารางชั่วคราว ตัวแปรตาราง ตามเนื้อผ้าฉันได้ใช้ความพยายามอย่างมากtemp tablesในการพัฒนาstored proceduresเนื่องจากดูเหมือนว่าจะสามารถอ่านได้มากกว่าแบบสอบถามย่อยแบบพัน Non-recursive CTEสรุปชุดข้อมูลได้ดีมากและอ่านได้มาก แต่มีสถานการณ์เฉพาะที่ใคร ๆ สามารถพูดได้ว่าพวกเขาจะทำงานได้ดีขึ้นหรือไม่ หรือว่าเป็นกรณีที่ต้องทำตัวตาม ๆ ตัวเลือกต่าง ๆ เพื่อหาทางออกที่มีประสิทธิภาพที่สุด? แก้ไข ฉันเพิ่งได้รับแจ้งว่าในแง่ของประสิทธิภาพตารางชั่วคราวเป็นตัวเลือกแรกที่ดีเนื่องจากมีฮิสโตแกรมที่เกี่ยวข้องเช่นสถิติ

22
เอาช่องว่างทั้งหมดออกจากสายอักขระใน SQL Server
วิธีที่ดีที่สุดในการลบช่องว่างทั้งหมดออกจากสตริงใน SQL Server 2008 คืออะไร LTRIM(RTRIM(' a b ')) จะลบช่องว่างทั้งหมดที่ด้านขวาและด้านซ้ายของสตริง แต่ฉันต้องลบช่องว่างตรงกลางด้วย

13
เมื่อใดที่ฉันควรใช้เครื่องหมายอัฒภาคใน SQL Server
ในขณะที่ตรวจสอบรหัสบางส่วนบนเว็บและสคริปต์ที่สร้างขึ้นโดย SQL Server Management Studio ฉันสังเกตว่าคำสั่งบางคำจะจบลงด้วยเครื่องหมายอัฒภาค ดังนั้นเมื่อไรฉันจึงควรใช้
221 sql-server  tsql 

8
ฉันจะจัดกลุ่มคอลัมน์ตามวันที่โดยไม่คำนึงถึงเวลาได้อย่างไร
ฉันมีคำสั่งซื้อสินค้ามากมายและฉันพยายามจัดกลุ่มตามวันที่และรวมปริมาณสำหรับวันที่นั้น ฉันจะจัดกลุ่มตามเดือน / วัน / ปีโดยไม่คำนึงถึงเวลาได้อย่างไร 3/8/2010 7:42:00 ควรจัดกลุ่มด้วย 3/8/2010 4:15:00

5
ฉันจะล้างบัฟเฟอร์ PRINT ใน TSQL ได้อย่างไร
ฉันมีกระบวนงานที่เก็บไว้นานมากใน SQL Server 2005 ที่ฉันพยายามตรวจแก้จุดบกพร่องและฉันใช้คำสั่ง 'พิมพ์' เพื่อทำ ปัญหาคือฉันเพิ่งได้รับข้อความกลับจาก SQL Server ในตอนท้ายสุดของ sproc ของฉัน - ฉันต้องการที่จะสามารถล้างบัฟเฟอร์ข้อความและดูข้อความเหล่านี้ทันทีในช่วงรันไทม์ของ sproc มากกว่าที่ ปลาย

30
ข้อผิดพลาด MSSQL 'ผู้ให้บริการที่ล้มเหลวในการเปิด'
ฉันถูกใช้.mdfสำหรับเชื่อมต่อกับและdatabase entityClientตอนนี้ฉันต้องการเปลี่ยนสตริงการเชื่อมต่อเพื่อที่จะไม่มี.mdfไฟล์ คือต่อไปนี้connectionStringถูกต้องหรือไม่ <connectionStrings> <!--<add name="conString" connectionString="metadata=res://*/conString.csdl|res://*/conString.ssdl|res://*/conString.msl;provider=System.Data.SqlClient;provider connection string="Data Source=.\SQL2008;AttachDbFilename=|DataDirectory|\NData.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True;MultipleActiveResultSets=True"" providerName="System.Data.EntityClient" />--> <add name="conString" connectionString="metadata=res://*/conString.csdl|res://*/conString.ssdl|res://*/conString.msl;provider=System.Data.SqlClient;provider connection string="Data Source=.\SQL2008;Initial Catalog=NData;Integrated Security=True;Connect Timeout=30;User Instance=True;MultipleActiveResultSets=True"" providerName="System.Data.EntityClient" /> เนื่องจากฉันได้รับข้อผิดพลาด: ผู้ให้บริการที่พื้นฐานล้มเหลวในการเปิด

7
SQL Server Management Studio วิธีรับเวลาดำเนินการจนถึงมิลลิวินาที
เมื่อฉันส่งแบตช์ (เช่นทำแบบสอบถาม) ใน SSMS ฉันเห็นเวลาที่ใช้ในการดำเนินการในแถบสถานะ เป็นไปได้หรือไม่ที่จะกำหนดค่า SSMS ให้แสดงเวลาสอบถามด้วยความละเอียดมิลลิวินาที? นี่คือบาร์ที่ฉันกำลังพูดถึงด้วยส่วนที่น่าสนใจวนเป็นสีแดง:

13
ฉันจะเลือกจากรายการค่าใน SQL Server ได้อย่างไร
ฉันมีปัญหาง่าย ๆ ที่ฉันไม่สามารถแก้ไขได้ ฉันต้องทำสิ่งนี้: select distinct * from (1, 1, 1, 2, 5, 1, 6). ใครช่วยได้บ้าง แก้ไข ข้อมูลมาเป็นไฟล์ข้อความจากหนึ่งในลูกค้าของเรา มันไม่มีการจัดรูปแบบทั้งหมด (เป็นข้อความบรรทัดเดียวที่ยาวมาก) แต่อาจทำได้ใน Excel แต่มันไม่เป็นประโยชน์สำหรับฉันเพราะฉันจะต้องใช้ค่าเหล่านี้ในการสืบค้น sql ไม่สะดวกที่จะทำทุกครั้งที่ฉันต้องการเรียกใช้แบบสอบถาม

30
คุณสมบัติที่ซ่อนของ SQL Server
ล็อคแล้ว คำถามและคำตอบของคำถามนี้ถูกล็อคเนื่องจากคำถามอยู่นอกหัวข้อ แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ SQL Serverมีฟีเจอร์ที่ซ่อนไว้อะไรบ้าง? ตัวอย่างเช่นระบบที่ไม่มีเอกสารจัดเก็บขั้นตอน, เทคนิคในการทำสิ่งที่มีประโยชน์มาก แต่ไม่ได้บันทึกไว้เพียงพอหรือไม่ คำตอบ ขอบคุณทุกคนสำหรับคำตอบที่ยอดเยี่ยม! ขั้นตอนการจัดเก็บ sp_msforeachtable:เรียกใช้คำสั่งด้วย '?' แทนที่ด้วยชื่อตารางแต่ละรายการ (v6.5 ขึ้นไป) sp_msforeachdb:เรียกใช้คำสั่งด้วย '?' แทนที่ด้วยชื่อฐานข้อมูลแต่ละชื่อ (v7 ขึ้นไป) sp_who2:เหมือนกับ sp_who แต่มีข้อมูลมากขึ้นสำหรับการแก้ปัญหาบล็อก (v7 ขึ้นไป) sp_helptext:หากคุณต้องการรหัสของกระบวนงานที่เก็บไว้ให้ดู & UDF sp_tables:ส่งคืนรายการตารางทั้งหมดและมุมมองของฐานข้อมูลในขอบเขต sp_stored_procedures:ส่งคืนรายการของโพรซีเดอร์ที่เก็บไว้ทั้งหมด xp_sscanf:อ่านข้อมูลจากสตริงลงในตำแหน่งอาร์กิวเมนต์ที่ระบุโดยอาร์กิวเมนต์แต่ละรูปแบบ xp_fixeddrives::ค้นหาไดรฟ์แบบคงที่ที่มีพื้นที่ว่างมากที่สุด sp_help:หากคุณต้องการทราบโครงสร้างตารางดัชนีและข้อ จำกัด ของตาราง นอกจากนี้ยังมีมุมมองและ UDF ทางลัดคือ Alt + F1 เกร็ดเล็กเกร็ดน้อย ส่งคืนแถวตามลำดับแบบสุ่ม วัตถุผู้ใช้ฐานข้อมูลทั้งหมดตามวันที่แก้ไขล่าสุด วันเดินทางกลับเท่านั้น ค้นหาระเบียนที่วันที่อยู่ที่ไหนสักแห่งในสัปดาห์ปัจจุบัน ค้นหาระเบียนที่วันที่เกิดขึ้นเมื่อสัปดาห์ที่แล้ว ส่งคืนวันที่สำหรับการเริ่มต้นของสัปดาห์ปัจจุบัน …
215 sql-server  tsql 

27
มีทรัพยากรใดบ้างสำหรับการปรับประสิทธิภาพฐานข้อมูล [ปิด]
ปิด. คำถามนี้ไม่เป็นไปตามหลักเกณฑ์กองมากเกิน ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน6 ปีที่ผ่านมา ปรับปรุงคำถามนี้ มีแหล่งข้อมูลอะไรที่ดีสำหรับการทำความเข้าใจการปรับฐานข้อมูลของเอ็นจิ้นหลักและพัฒนาความรู้ของคุณในพื้นที่นั้น? แนวคิดของคำถามนี้คือการรวบรวมทรัพยากรหลั่งที่มีอยู่อย่างสม่ำเสมอเพื่อให้ผู้คนสามารถมีร้านค้าความรู้ "ครบวงจร" ของแหล่งข้อมูลที่ดีที่ได้รับการรับรอง SQL ทั่วไป หนังสือ: การปรับประสิทธิภาพ SQL หนังสือ: การปรับแต่ง SQL หนังสือ: ศิลปะแห่ง SQL หนังสือ: การปรับเปลี่ยนแอพพลิเคชัน SQL ใหม่ หนังสือ: การปรับฐานข้อมูล: หลักการการทดลองและเทคนิคการแก้ไขปัญหา ใช้ดัชนีลุค! - คำแนะนำเกี่ยวกับประสิทธิภาพของฐานข้อมูลสำหรับนักพัฒนา PostgreSQL ( wiki ) ( PGsearch ) การเพิ่มประสิทธิภาพ การเพิ่มประสิทธิภาพ PostgreSQL อย่างรวดเร็ว อธิบายวิเคราะห์ล่าม เคล็ดลับประสิทธิภาพของ PostgreSQL หนังสือ: …

25
สร้างคลาสจากตารางฐานข้อมูล
ฉันจะสร้างคลาสจากวัตถุตาราง SQL Server ได้อย่างไร ฉันไม่ได้พูดถึงการใช้ ORM ฉันแค่ต้องสร้างเอนทิตี้ (คลาสง่าย) สิ่งที่ต้องการ: public class Person { public string Name { get;set; } public string Phone { get;set; } } รับตารางบางอย่างเช่น: +----+-------+----------------+ | ID | Name | Phone | +----+-------+----------------+ | 1 | Alice | (555) 555-5550 | | 2 | Bob | (555) …
214 c#  sql  sql-server  tsql 

3
จะเขียน UPDATE SQL ด้วย alias Table ใน SQL Server 2008 ได้อย่างไร?
ฉันมีพื้นฐานมากUPDATE SQL- UPDATE HOLD_TABLE Q SET Q.TITLE = 'TEST' WHERE Q.ID = 101; แบบสอบถามนี้จะทำงานได้ดีในOracle, Derby, MySQL- แต่ก็ล้มเหลวใน SQL Server 2008 ด้วยข้อผิดพลาดต่อไปนี้: "ข่าวสารเกี่ยวกับ 102, ระดับ 15, สถานะ 1, บรรทัด 1 ไวยากรณ์ไม่ถูกต้องใกล้กับ 'Q'" ถ้าฉันลบ alias ที่เกิดขึ้นทั้งหมด "Q" ออกจาก SQL มันก็ใช้ได้ แต่ฉันต้องใช้นามแฝง

10
การจัดเก็บ JSON ในฐานข้อมูลเทียบกับการมีคอลัมน์ใหม่สำหรับแต่ละคีย์
ฉันกำลังใช้โมเดลต่อไปนี้สำหรับเก็บข้อมูลที่เกี่ยวข้องกับผู้ใช้ในตารางของฉัน - ฉันมี 2 คอลัมน์ - uid(คีย์หลัก) และmetaคอลัมน์ที่เก็บข้อมูลอื่นเกี่ยวกับผู้ใช้ในรูปแบบ JSON uid | meta -------------------------------------------------- 1 | {name:['foo'], | emailid:['foo@bar.com','bar@foo.com']} -------------------------------------------------- 2 | {name:['sann'], | emailid:['sann@bar.com','sann@foo.com']} -------------------------------------------------- นี่คือวิธีที่ดีกว่า (ประสิทธิภาพฉลาดการออกแบบที่ชาญฉลาด) กว่ารุ่นหนึ่งคอลัมน์ต่อทรัพย์สินที่ตารางจะมีคอลัมน์มากมายเช่นuid, ,nameemailid สิ่งที่ฉันชอบเกี่ยวกับโมเดลแรกคือคุณสามารถเพิ่มฟิลด์ได้มากเท่าที่จะทำได้โดยไม่มีข้อ จำกัด นอกจากนี้ฉันยังสงสัยว่าตอนนี้ฉันได้ใช้โมเดลแรกแล้ว ฉันจะทำเคียวรีอย่างไรเช่นฉันต้องการดึงข้อมูลผู้ใช้ทั้งหมดที่มีชื่อเช่น 'foo' คำถาม - วิธีใดที่จะดีกว่าในการจัดเก็บข้อมูลที่เกี่ยวข้องกับผู้ใช้ (จำไว้ว่าจำนวนของฟิลด์ไม่คงที่) ในฐานข้อมูลโดยใช้ - JSON หรือคอลัมน์ต่อฟิลด์ นอกจากนี้หากมีการนำโมเดลแรกไปใช้จะทำการสืบค้นฐานข้อมูลตามที่อธิบายไว้ข้างต้นได้อย่างไร ฉันควรใช้ทั้งสองโมเดลโดยการเก็บข้อมูลทั้งหมดซึ่งอาจถูกค้นหาโดยเคียวรีในแถวแยกต่างหากและข้อมูลอื่นใน JSON (เป็นแถวที่แตกต่างกัน) ปรับปรุง เนื่องจากไม่มีคอลัมน์มากเกินไปที่ฉันต้องทำการค้นหาจึงควรใช้ทั้งสองแบบหรือไม่ คีย์ต่อคอลัมน์สำหรับข้อมูลที่ฉันต้องการค้นหาและ JSON …

19
การนับ DISTINCT บนหลายคอลัมน์
มีวิธีที่ดีกว่าในการทำแบบสอบถามเช่นนี้: SELECT COUNT(*) FROM (SELECT DISTINCT DocumentId, DocumentSessionId FROM DocumentOutputItems) AS internalQuery ฉันต้องนับจำนวนรายการที่แตกต่างจากตารางนี้ แต่ความแตกต่างอยู่เหนือสองคอลัมน์ แบบสอบถามของฉันทำงานได้ดี แต่ฉันสงสัยว่าฉันจะได้ผลลัพธ์สุดท้ายโดยใช้เพียงแบบสอบถามเดียว (โดยไม่ใช้แบบสอบถามย่อย)


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