ผู้ดูแลฐานข้อมูล

ถามตอบสำหรับผู้เชี่ยวชาญด้านฐานข้อมูลที่ต้องการพัฒนาทักษะฐานข้อมูลและเรียนรู้จากผู้อื่นในชุมชน

7
วิธีที่มีประสิทธิภาพที่สุดในการรับจำนวนคอลัมน์ขั้นต่ำใน SQL Server 2005 คืออะไร
ฉันอยู่ในสถานการณ์ที่ฉันต้องการรับค่าต่ำสุดจาก 6 คอลัมน์ ฉันได้พบสามวิธีในการบรรลุเป้าหมายนี้ แต่ฉันมีความกังวลเกี่ยวกับประสิทธิภาพของวิธีการเหล่านี้และต้องการทราบว่าวิธีไหนที่จะดีกว่าสำหรับการแสดง วิธีแรกคือการใช้คำสั่งคดีใหญ่ นี่คือตัวอย่างที่มี 3 คอลัมน์ตามตัวอย่างในลิงก์ด้านบน คำสั่ง case ของฉันจะนานกว่านี้เพราะฉันจะดูที่ 6 คอลัมน์ Select Id, Case When Col1 <= Col2 And Col1 <= Col3 Then Col1 When Col2 <= Col3 Then Col2 Else Col3 End As TheMin From MyTable ตัวเลือกที่สองคือการใช้ประกอบกับงบเลือกหลายUNION ฉันจะใส่สิ่งนี้ใน UDF ที่ยอมรับพารามิเตอร์ Id select Id, dbo.GetMinimumFromMyTable(Id) from MyTable …

1
อะไรคือวัตถุประสงค์เชิงเหตุผลที่ต้องการ SQL Server 2016 มากกว่าเวอร์ชั่นก่อนหน้า?
เนื่องจาก Microsoft ทำให้รุ่น SQL Server อัปเกรดบ่อยขึ้นตั้งแต่ SQL Server 2005 หรือ 2008 วันหลาย บริษัท พบว่าเป็นการยากที่จะตัดสินว่าการอัปเกรดเป็น "ต้องมี!" และเมื่อการอัปเกรดเป็น "ดีที่มี" ในคำถามก่อนหน้านี้สองสามคำถามที่ถามถึงเหตุผลที่ต้องการรุ่นใหม่กว่าของ SQL Server มากกว่ารุ่นก่อนหน้าอะไรคือเหตุผลทางเทคนิคหรือเหตุผลทางธุรกิจที่ บริษัท อาจพิจารณาเพื่ออัปเกรดเป็น SQL Server 2016 มากกว่ารุ่นก่อนหน้า เปิดตัวเช่น SQL Server 2014 ( คำถามนี้เกี่ยวกับ SQL Server 2012 เมื่อเทียบกับ SQL Server 2008 หรือนี่เกี่ยวกับ SQL Server 2012 เทียบกับ SQL Server 2005 เป็นตัวอย่างของจิตวิญญาณของคำถามนี้คำตอบของพวกเขายังขยายไปด้วยเหตุผลบางประการที่นี่สำหรับ บริษัท …

1
วิธีทำตาราง postgres ขนาดใหญ่ซ้ำกันอย่างไร
ฉันมีตาราง postgres ขนาดใหญ่ (ข้อมูล 10GB - บันทึก 160M) ตารางเป็นแบบสแตติกและไม่มีการดำเนินการเขียนในนั้น ฉันต้องการที่จะทำซ้ำดำเนินการเขียนทำดัชนีใหม่และจากนั้นด้วยการทำธุรกรรมอย่างรวดเร็วเดียวลบเก่าและเปลี่ยนชื่อใหม่เป็นชื่อเดิม วิธีที่เร็วที่สุดในการทำสำเนาตารางขนาดใหญ่เช่นนี้คืออะไร?
29 postgresql 

2
มีวิธีการป้องกันไม่ให้ Scalar UDFs ในคอลัมน์ที่คำนวณได้จากการยับยั้งความเท่าเทียมกันหรือไม่?
มีการเขียนมากมายเกี่ยวกับภัยของ Scalar UDFใน SQL Server การค้นหาทั่วไปจะส่งคืนผลลัพธ์จำนวนมาก มีสถานที่บางแห่งที่ Scalar UDF เป็นตัวเลือกเท่านั้น เป็นตัวอย่าง: เมื่อจัดการกับ XML: XQuery ไม่สามารถใช้เป็นข้อกำหนดคอลัมน์ที่คำนวณได้ ทางเลือกหนึ่งที่มีการบันทึกโดย Microsoft คือการใช้Scalar UDFเพื่อแค็ปซูล XQuery ของคุณใน Scalar UDF จากนั้นใช้ในคอลัมน์ที่คำนวณ สิ่งนี้มีเอฟเฟกต์ต่าง ๆ และวิธีแก้ปัญหาบางอย่าง ดำเนินการทีละแถวเมื่อมีการสอบถามตาราง บังคับให้คิวรีทั้งหมดกับตารางทำงานแบบอนุกรม คุณสามารถหลีกเลี่ยงการประมวลผลแบบแถวต่อแถวได้โดยการกำหนดฟังก์ชันและคงคอลัมน์ที่คำนวณไว้หรือสร้างดัชนี ไม่มีวิธีใดที่สามารถป้องกันการบังคับให้ลำดับของเคียวรีที่กดปุ่มตารางแม้ว่าสเกลาร์ UDF ไม่ได้ถูกอ้างอิง มีวิธีที่รู้จักกันในการทำเช่นนั้น?

1
จะถอนการติดตั้ง SQL Server Management Studio 2012 ได้อย่างไร [ปิด]
จะถอนการติดตั้ง SQL Server Management Studio 2012 ได้อย่างไร ControlPanel ของ "ถอนการติดตั้งหรือเปลี่ยนโปรแกรม" (ใน Windows 7 Prof) ให้รายการต่างๆ: ในขณะที่ผลการค้นหาอินเทอร์เน็ตบอกเสมอ : "คลิก Microsoft SQL Server 2005 แล้วคลิกเปลี่ยน" UPDATE (แสดงความคิดเห็นคำตอบของ Shawn Melton ): เมื่อเลือก "" Microsoft SQL Server 2012 (64 บิต) "-> ถอนการติดตั้ง / เปลี่ยนแปลงฉันสังเกต: และหลังจากเลือก "ลบ", "กฎการสนับสนุนการตั้งค่า" โดยไม่มีตัวเลือก SSMS หรือความต่อเนื่อง:

2
มีการรีสตาร์ทที่ดีหรือปลอดภัยสำหรับ mysql เช่น apache httpd หรือไม่
ฉันต้องการเริ่ม mysql ใหม่อย่างสง่างามเช่นเดียวกับ httpd ที่มีการเสิร์ฟเธรดก่อนที่จะรีสตาร์ท ฉันจะไม่ชอบข้อความค้นหาที่ละเมิด
29 mysql 

2
ความแตกต่างระหว่างตารางการเพิ่มประสิทธิภาพและวิเคราะห์ตารางใน MySQL คืออะไร
ความแตกต่างระหว่างตารางการเพิ่มประสิทธิภาพและวิเคราะห์ตารางใน MySQL คืออะไร? ฉันอ่านเอกสารออนไลน์แล้ว แต่ไม่แน่ใจว่าต่างกันอย่างไร
29 mysql  mysql-5.5 

2
วิธีการถ่ายโอนข้อมูลโดยใช้คำสั่ง expdp และ impdp?
ฉันเป็น Oracle noob และความตั้งใจของฉันคือการถ่ายโอนข้อมูลและข้อมูลเมตาทั้งหมดจากสคีมาหนึ่งไปยังสคีมาอื่นภายในฐานข้อมูล Oracle ฉันวางแผนที่จะใช้ datapump expdpและimpdpคำสั่ง ฉันมีคำถามเกี่ยวกับเรื่องนี้: ฉันสามารถสร้างสคีมาเป้าหมายโดยไม่มีผู้ใช้หรือฉันควรสร้างผู้ใช้ก่อน (ซึ่งจะสร้างสคีมาด้วย) ฉันสามารถดำเนินการexpdpและimpdpสั่งงานด้วยบัญชี SYS (as sysdba) ได้หรือไม่ นั่นเป็นวิธีที่ต้องการหรือไม่ คำสั่งนี้ใช้วัตถุทั้งหมด (ข้อมูลและข้อมูลเมตา) จากสคีมาและย้ายสิ่งเหล่านี้ไปเป็นสคีมาที่แตกต่างกันหรือไม่? expdp \"/ as sysdba\" schemas=<schemaname> directory=dumpdir dumpfile=<schemaname>.dmp logfile=expdp_<schemaname>.log สกีมาเป้าหมายคือสำเนาที่ถูกต้องของซอร์สสกีมาหลังจากimpdpคำสั่งหรือไม่
29 oracle  schema  export  impdp  expdp 

3
เมื่อใดที่คำนวณคอลัมน์
กำหนดค่าสำหรับคอลัมน์ที่คำนวณได้เมื่อใด เมื่อค่าถูกดึง? เมื่อมีการเปลี่ยนแปลงค่าหรือไม่ บางเวลาอื่น ๆ ฉันเดาว่านี่เป็นคำถามสามเณรเพราะฉันไม่พบสิ่งใดในการค้นหาของฉัน

2
มีประโยชน์หรือไม่หากมีไดเรกทอรีรูตอินสแตนซ์ของ SQL Server บนไดรฟ์แยกต่างหาก
ฉันรู้ว่าเป็นไปได้ที่จะเปลี่ยนเส้นทางเริ่มต้นจำนวนมากเมื่อติดตั้ง SQL Server และโดยทั่วไปเมื่อฉันติดตั้งฉันเปลี่ยนข้อมูลและโฟลเดอร์บันทึกเป็นไดรฟ์แยกต่างหาก (โดยทั่วไปคือ D และ E) แต่ฉันเพิ่งได้รับ เครื่องที่ติดตั้งล่วงหน้าซึ่งใช้ชื่ออินสแตนซ์นอกเหนือจากค่าเริ่มต้นและพวกเขาได้กำหนดค่าไดเรกทอรีรากของอินสแตนซ์ให้อยู่ในไดรฟ์ D พร้อมกับไฟล์ mdf ซึ่งหมายความว่าสิ่งที่ตามปกติจะเป็นไดรฟ์ที่ค่อนข้างสะอาดโดยมีเพียงโฟลเดอร์และไฟล์ฐานข้อมูลในตอนนี้ฉันมีการติดตั้งไบนารีของ SQL Server แบบเต็มเช่นกัน คือตอนนี้ฉันมีดังต่อไปนี้: C:\Program Files\Microsoft SQL Server\ --Base Install D:\Microsoft SQL Server\MSSQL10_50.MyInstance --Instance Binaries D:\Microsoft SQL Server\MSSQL10_50.MyInstance\MSSQL\DATA --Data Files E:\Microsoft SQL Server\MSSQL10_50.MyInstance\MSSQL\LOGS --Log Files โดยปกติแล้วฉันจะวิ่งด้วยบางสิ่งเช่น: C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\ --Base Install & Default Instance Binaries …

4
การเข้าถึงถูกปฏิเสธสำหรับผู้ใช้ 'รูท' @ '%'
ฉันเคยเข้าถึงผู้ใช้รูทใน MySQL ได้ดี แต่เมื่อเร็ว ๆ นี้ฉันไม่สามารถ ฉันสามารถเข้าสู่ระบบได้ดี: mysql -u root -p นี่คือสถานะ mysql หลังจากเข้าสู่ระบบ: mysql> status -------------- mysql Ver 14.14 Distrib 5.5.28, for debian-linux-gnu (i686) using readline 6.2 Connection id: 37 Current database: Current user: root@localhost SSL: Not in use Current pager: stdout Using outfile: '' Using delimiter: ; Server …

5
SQL Deadlock บนคีย์คลัสเตอร์ที่ถูกล็อคแบบพิเศษ (พร้อม NHibernate) ที่ลบ / แทรก
ฉันทำงานเกี่ยวกับปัญหาการหยุดชะงักนี้มาหลายวันแล้วและไม่ว่าฉันจะทำอะไรมันยังคงมีอยู่ไม่ทางใดก็ทางหนึ่ง ขั้นแรกสถานที่ทั่วไป: เรามีการเข้าชมด้วย VisitItems ในความสัมพันธ์แบบหนึ่งต่อหลาย VisitItems ข้อมูลที่เกี่ยวข้อง: CREATE TABLE [BAR].[VisitItems] ( [Id] INT IDENTITY (1, 1) NOT NULL, [VisitType] INT NOT NULL, [FeeRateType] INT NOT NULL, [Amount] DECIMAL (18, 2) NOT NULL, [GST] DECIMAL (18, 2) NOT NULL, [Quantity] INT NOT NULL, [Total] DECIMAL (18, 2) NOT NULL, [ServiceFeeType] INT …

4
ควรหลีกเลี่ยง schema dbo หรือไม่
เมื่อพูดถึง dbo schema: เป็นวิธีปฏิบัติที่ดีที่สุดในการหลีกเลี่ยงการใช้ dbo schema เมื่อสร้างวัตถุฐานข้อมูลหรือไม่ เหตุใดจึงควรหลีกเลี่ยงสกีมา dbo หรือควร ผู้ใช้ฐานข้อมูลใดควรเป็นเจ้าของ dbo schema

2
ทำไมสัญลักษณ์ตัวแทนในกลุ่มจำแนกตามคำสั่งไม่ทำงาน
ฉันพยายามทำให้คำสั่ง SQL ต่อไปนี้ทำงาน แต่ฉันได้รับข้อผิดพลาดทางไวยากรณ์: SELECT A.*, COUNT(B.foo) FROM TABLE1 A LEFT JOIN TABLE2 B ON A.PKey = B.FKey GROUP BY A.* ที่นี่ A เป็นตารางกว้างที่มี 40 คอลัมน์และฉันต้องการหลีกเลี่ยงการแสดงชื่อแต่ละคอลัมน์ในกลุ่มตามข้อถ้าเป็นไปได้ ฉันมีตารางดังกล่าวจำนวนมากซึ่งฉันต้องเรียกใช้แบบสอบถามที่คล้ายกันดังนั้นฉันจะต้องเขียนกระบวนงานที่เก็บไว้ วิธีที่ดีที่สุดในการเข้าถึงสิ่งนี้คืออะไร? ฉันใช้ MS SQL Server 2008

3
ฉันควรใช้เทคนิค PowerShell ใดเพื่อพูดคุยกับ SQL Server
ในที่สุดฉันต้องการใช้ PowerShell เพื่อแทนที่สคริปต์ KornShell เก่าที่เราใช้สำหรับการมอนิเตอร์อินสแตนซ์ SQL แม้ว่าฉันจะมีช่วงเวลาที่ยากลำบาก แต่ก็ทำให้สมองของฉันได้รับวิธีที่ต่างกันที่ PowerShell สามารถพูดคุยกับเซิร์ฟเวอร์ SQL ได้ ไม่แน่ใจว่าเป็นของพวกเขาทั้งหมดหรือไม่ แต่นี่เป็นวิธีที่ต่างกันทั้งหมด 5 วิธีที่ฉันสามารถสืบค้นรุ่นของเซิร์ฟเวอร์ SQL: 1. SQLConnection. NET Class $SqlConnection = New-Object System.Data.SqlClient.SqlConnection $SqlConnection.ConnectionString = "Server=MyServer;Database=Master;Integrated Security=True" $SqlCmd = New-Object System.Data.SqlClient.SqlCommand $SqlCmd.CommandText = "Select @@version as SQLServerVersion" $SqlCmd.Connection = $SqlConnection $SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter $SqlAdapter.SelectCommand = $SqlCmd $DataSet …

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