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

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


14
PostgreSQL ทำงานในเครื่อง แต่ฉันไม่สามารถเชื่อมต่อได้ ทำไม?
เพิ่งปรับปรุงเครื่องของฉันจาก Mac OS X Lion (10.7.4) เป็น Mountain Lion (10.8) และฉันคิดว่ามันติดตั้ง PostgreSQL ของฉัน มันถูกติดตั้งครั้งแรกผ่านทาง Homebrew ฉันไม่ใช่ DBA แต่หวังว่าจะมีคนบอกฉันได้ว่าจะแก้ไขปัญหานี้อย่างไร ฉันไม่สามารถเชื่อมต่อได้ (แต่สามารถทำก่อนหน้า Lion Mountain ล่วงหน้าได้): $ psql -U rails -d myapp_development psql: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix …

5
การจัดการการเข้าถึงตารางคีย์พร้อมกันโดยไม่มี deadlocks ใน SQL Server
ฉันมีตารางที่ใช้โดยแอปพลิเคชันรุ่นเก่าแทนIDENTITYเขตข้อมูลในตารางอื่น ๆ แถวในตารางแต่ละเก็บ ID ที่ใช้ล่าสุดสำหรับเขตที่มีชื่อในLastIDIDName บางครั้ง proc ที่เก็บไว้จะได้รับ deadlock - ฉันเชื่อว่าฉันได้สร้างตัวจัดการข้อผิดพลาดที่เหมาะสม แต่ฉันสนใจที่จะดูว่าวิธีการนี้ใช้ได้ตามที่ฉันคิดหรือไม่หรือถ้าฉันเห่าต้นไม้ผิดที่นี่ ฉันค่อนข้างแน่ใจว่าควรมีวิธีการเข้าถึงตารางนี้โดยไม่มีการหยุดชะงักใด ๆ เลย READ_COMMITTED_SNAPSHOT = 1ฐานข้อมูลตัวเองถูกกำหนดค่าด้วย ก่อนอื่นนี่คือตาราง: CREATE TABLE [dbo].[tblIDs]( [IDListID] [int] NOT NULL CONSTRAINT PK_tblIDs PRIMARY KEY CLUSTERED IDENTITY(1,1) , [IDName] [nvarchar](255) NULL, [LastID] [int] NULL, ); และดัชนี nonclustered บนIDNameสนาม: CREATE NONCLUSTERED INDEX [IX_tblIDs_IDName] ON [dbo].[tblIDs] ( …

3
ทำไม SQL Server ใช้แผนการดำเนินการที่ดีขึ้นเมื่อฉันอินไลน์ตัวแปร
ฉันมีแบบสอบถาม SQL ที่ฉันพยายามปรับให้เหมาะสม: DECLARE @Id UNIQUEIDENTIFIER = 'cec094e5-b312-4b13-997a-c91a8c662962' SELECT Id, MIN(SomeTimestamp), MAX(SomeInt) FROM dbo.MyTable WHERE Id = @Id AND SomeBit = 1 GROUP BY Id MyTable มีสองดัชนี: CREATE NONCLUSTERED INDEX IX_MyTable_SomeTimestamp_Includes ON dbo.MyTable (SomeTimestamp ASC) INCLUDE(Id, SomeInt) CREATE NONCLUSTERED INDEX IX_MyTable_Id_SomeBit_Includes ON dbo.MyTable (Id, SomeBit) INCLUDE (TotallyUnrelatedTimestamp) เมื่อฉันดำเนินการแบบสอบถามตรงตามที่เขียนไว้ข้างต้น SQL Server …

2
Oracle: วิธีที่รวดเร็วเพื่อแสดงรายการลิงก์ฐานข้อมูลทั้งหมด
ชื่อกล่าวมันทั้งหมดมีวิธีการอย่างรวดเร็วรายการลิงค์ฐานข้อมูลปัจจุบันใน oracle? บางสิ่งในบรรทัดเดียวกันกับสิ่งนี้ซึ่งแสดงตารางผู้ใช้ปัจจุบัน: select * from user_tables; ขอบคุณ GC



6
ทำให้ SqlClient เป็นค่าเริ่มต้นเป็น ARITHABORT ON
สิ่งแรกแรก: ผมใช้ MS SQL Server 2008 ด้วยฐานข้อมูลที่ระดับความเข้ากันได้ 80 System.Data.SqlClient.SqlConnectionและการเชื่อมต่อกับสุทธิของ สำหรับเหตุผลด้านประสิทธิภาพฉันได้สร้างมุมมองที่จัดทำดัชนีแล้ว ARITHABORT ONเป็นผลให้การปรับปรุงตารางการอ้างอิงในมุมมองความจำเป็นที่จะต้องทำด้วย อย่างไรก็ตามผู้สร้างโปรไฟล์แสดงว่า SqlClient เชื่อมต่ออยู่ARITHABORT OFFดังนั้นการอัพเดทตารางเหล่านั้นจึงล้มเหลว มีการตั้งค่ากลางเพื่อให้ SqlClient ใช้งานARITHABORT ONหรือไม่ สิ่งที่ดีที่สุดที่ฉันสามารถค้นหาได้คือการดำเนินการด้วยตนเองทุกครั้งที่มีการเปิดการเชื่อมต่อ แต่การอัปเดตฐานรหัสที่มีอยู่เพื่อทำสิ่งนี้จะเป็นงานที่ค่อนข้างใหญ่ดังนั้นฉันจึงกระตือรือร้นที่จะหาวิธีที่ดีกว่า

9
คุณเปลี่ยนแปลงเวอร์ชันฐานข้อมูล Oracle ของคุณอย่างไร
ฉันสนใจที่จะทราบว่าคนอื่นกำลังใช้วิธีการใดในการติดตามการเปลี่ยนแปลงที่เกิดขึ้นกับฐานข้อมูลรวมถึงการเปลี่ยนแปลงคำนิยามตารางวัตถุใหม่การเปลี่ยนแปลงแพ็คเกจ ฯลฯ คุณใช้ไฟล์แฟลตด้วยระบบควบคุมเวอร์ชันภายนอกหรือไม่? ทริกเกอร์? ซอฟต์แวร์อื่น ๆ ?

5
ฉันจะใช้ค่าเริ่มต้นในแบบสอบถามแบบใช้เลือกข้อมูลใน PostgreSQL ได้อย่างไร
ฉันต้องการใช้ค่าเริ่มต้นสำหรับคอลัมน์ที่ควรใช้หากไม่มีการส่งคืนแถว เป็นไปได้ใน PostgreSQL? ฉันจะทำมันได้อย่างไร หรือมีวิธีอื่นที่ฉันสามารถแก้ไขได้? เช่นบางสิ่งเช่นนี้ SELECT MAX(post_id) AS max_id DEFAULT 0 FROM my_table WHERE org_id = 3 และถ้าไม่มีแถวที่มีในตารางผมต้องการที่จะกลับมาorg_id = 30

9
ตาราง Oracle DUAL ทำงานอย่างไร
SQL> desc dual Name Null? Type ----------------------------------------- -------- ---------------------------- DUMMY VARCHAR2(1) SQL> select 4*5 from dual; 4*5 ---------- 20 SQL> ฉันคิดว่ามันแปลกจริงๆ หากไม่มีคอลัมน์ชื่อ 4 * 5 เป็นแบบคู่คำสั่ง select ทำงานอย่างไร นอกจากนี้ทำไมฉันไม่เห็นพฤติกรรมเดียวกันเมื่อฉันสร้างตารางคู่ของตัวเอง SQL> create table dual2(dummy varchar2(1)); Table created. SQL> desc dual2 Name Null? Type ----------------------------------------- -------- ---------------------------- DUMMY VARCHAR2(1) SQL> select 4*5 …
32 oracle 


1
ทำไมความเร็วในการดำเนินการคำสั่งขึ้นอยู่กับการเชื่อมต่อเครือข่าย?
ดูเหมือนว่าความเร็วในการดำเนินการ T-SQL นั้นขึ้นอยู่กับเวลาแฝงของการเชื่อมต่อเครือข่ายกับเซิร์ฟเวอร์ ฉันสันนิษฐานว่าถ้า SQL Server ไม่มีอะไรจะรายงานกลับไปยังไคลเอนต์เกี่ยวกับมันก็จะดำเนินไปจนกว่าจะเสร็จ แต่การทดสอบแสดงให้เห็นอีกเรื่องหนึ่ง create procedure UselessLoop @I int as declare @D datetime = getdate() while @I > 0 set @I -= 1 print datediff(millisecond, @D, getdate()) exec UselessLoop 100000 Server Milliseconds local 53 nearby 63 faraway 660 exec UselessLoop 1000000 Server Milliseconds local 546 nearby …
31 sql-server  t-sql 

8
ผลกระทบด้านความปลอดภัยของการกู้คืนข้อมูลสำรองจากแหล่งที่ไม่รู้จักหรือไม่?
สถานการณ์จำลอง : คุณส่งการสำรองฐานข้อมูลและบอกให้คืนค่าไปยังเซิร์ฟเวอร์ (ที่โฮสต์ฐานข้อมูลอื่นอยู่แล้ว) แต่ไม่ได้รับข้อมูลที่เป็นประโยชน์เกี่ยวกับการสำรองข้อมูลที่มีหรือว่าแหล่งข้อมูลนั้นควรเชื่อถือได้หรือไม่ คำถามที่ 1 : ความหมายของการกู้คืนข้อมูลสำรองที่อาจเป็นอันตรายได้อย่างไร คำถามที่ 2 : คุณสามารถปกป้องเซิร์ฟเวอร์ / ข้อมูลในฐานข้อมูลอื่นจากผลกระทบของการกู้คืนข้อมูลสำรองที่อาจเป็นอันตรายได้อย่างไร RESTORE VERIFYONLYดูเหมือนจะเป็นก้าวแรกที่ดี คำตอบที่ดีที่สุดคือ 'กู้คืนฐานข้อมูลใน sandbox VM โดยไม่ต้องเข้าถึงโลกภายนอก' แต่ลองสมมติว่าตัวเลือกนั้นอยู่นอกตาราง ควรทำอะไรในสถานการณ์นี้

2
เหตุใดข้อผิดพลาดการสืบค้นที่ตั้งค่าผลลัพธ์ว่างใน SQL Server 2012
เมื่อเรียกใช้แบบสอบถามต่อไปนี้ใน MS SQL Server 2012 แบบสอบถามที่สองล้มเหลว แต่ไม่ใช่แบบสอบถามแรก นอกจากนี้เมื่อเรียกใช้โดยไม่มีส่วนคำสั่งทั้งสองข้อจะล้มเหลว ฉันแพ้ทำไมทั้งสองล้มเหลวเนื่องจากทั้งคู่ควรมีชุดผลลัพธ์ว่างเปล่า ความช่วยเหลือ / ความเข้าใจใด ๆ ที่มีความนิยม create table #temp (id int primary key) create table #temp2 (id int) select 1/0 from #temp where id = 1 select 1/0 from #temp2 where id = 1

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