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

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

2
การสร้างแบบจำลองข้อ จำกัด ในมวลรวมย่อย?
ฉันใช้ PostgreSQL แต่ฉันคิดว่าส่วนใหญ่ของฐานข้อมูลบนสุดต้องมีความสามารถที่คล้ายกันและยิ่งไปกว่านั้นโซลูชันสำหรับพวกเขาอาจเป็นแรงบันดาลใจให้ฉันดังนั้นจึงไม่ควรพิจารณาเฉพาะ PostgreSQL นี้ ฉันรู้ว่าฉันไม่ใช่คนแรกที่พยายามแก้ปัญหานี้ดังนั้นฉันคิดว่ามันคุ้มค่าที่จะถามที่นี่ แต่ฉันกำลังพยายามประเมินค่าใช้จ่ายของการสร้างแบบจำลองข้อมูลบัญชีเช่นว่าการทำธุรกรรมทุกครั้งมีความสมดุลทางพื้นฐาน ข้อมูลการบัญชีต่อท้ายเท่านั้น ข้อ จำกัด โดยรวม (เขียนในโค้ดหลอก) ที่นี่อาจมีลักษณะประมาณ: CREATE TABLE journal_entry ( id bigserial not null unique, --artificial candidate key journal_type_id int references journal_type(id), reference text, -- source document identifier, unique per journal date_posted date not null, PRIMARY KEY (journal_type_id, reference) ); CREATE TABLE journal_line …

1
UPSERT - มีทางเลือกอื่นที่ดีกว่าสำหรับ MERGE หรือ @@ rowcount หรือไม่ [ปิด]
เป็นการยากที่จะบอกสิ่งที่ถูกถามที่นี่ คำถามนี้คลุมเครือคลุมเครือไม่สมบูรณ์กว้างเกินไปหรือโวหารและไม่สามารถตอบได้อย่างสมเหตุสมผลในรูปแบบปัจจุบัน สำหรับความช่วยเหลือในการทำความเข้าใจคำถามนี้เพื่อที่จะสามารถเปิด, ไปที่ศูนย์ช่วยเหลือ ปิดให้บริการใน7 ปีที่ผ่านมา ฉันสงสัยว่าถ้าคุณพบคำสั่ง T-SQL ซึ่งคล้ายกับแนวคิดของ UPSERT หรือไม่ การดำเนินการ INSERT | UPDATE โดยใช้ตัวเลือก (1) หรือ (2) ดูเหมือนซับซ้อนและมีข้อผิดพลาดมากเกินไป วัตถุประสงค์ เพื่อให้แน่ใจว่าระเบียนที่ต้องการ (ในกรณีนี้ employee_id 1) เป็นข้อมูลล่าสุดโดยไม่จำเป็นต้องเขียนคำถามเดียวกันสองครั้ง บริบท ชื่อตาราง: ลูกจ้าง รหัสพนักงาน: มีคีย์หลักและตั้งค่าความเป็นตัวตนเป็นจริง ตัวเลือก เรียกใช้ SQL UPDATE ... ตรวจสอบ @@ rowcount = 0 และ @@ error = 0 ... เรียกใช้ SQL INSERT …

3
ฉันต้องสำรองข้อมูล Service Master Key เมื่อใด
ฉันกำลังอ่านเอกสารและเอกสารทางเทคนิคเกี่ยวกับการเข้ารหัสข้อมูลแบบโปร่งใส เอกสารบางอย่างกล่าวถึงการสำรอง Service Master Key ด้วย (เพื่อความกระจ่างฉันไม่ได้พูดถึงคีย์หลักของฐานข้อมูล) ฉันไม่เข้าใจว่าทำไมถึงมีความจำเป็นเพราะฉันสามารถสำรอง / กู้คืนฐานข้อมูลด้วยการเข้ารหัส TDE จากเซิร์ฟเวอร์ A (สำรอง) ไปยังเซิร์ฟเวอร์ B (กู้คืน) โดยไม่ต้องใช้ Service Master Key ใด ๆ ฉันต้องกู้คืน Service Master Key ในสถานการณ์ใด

3
การอัพเดตสถิติแบบขนาน
ใน SQL Server 2008 หรือใหม่กว่าUPDATE STATISTICS WITH FULLSCANการดำเนินการแบบเธรดเดียวหรือสามารถใช้การขนานได้หรือไม่ วิธีการเกี่ยวกับสถิติการปรับปรุงด้วยการสุ่มตัวอย่างเริ่มต้น - มันสามารถใช้ขนานกันได้อย่างไร ฉันไม่เห็นตัวเลือกที่ระบุMAXDOPด้วยสถิติการอัปเดต

2
วิธีลบฐานข้อมูลการกู้คืน
ฉันเรียกใช้บันทึกการจัดส่งกับ SQL Server 2008 R2 ฉันมีสถานการณ์ที่ไดรฟ์ฐานข้อมูลรองมีพื้นที่เหลืออยู่และไม่ได้ใช้บันทึกธุรกรรมการจัดส่งบันทึก วิธีที่ฉันต้องการแก้ไขคือลบฐานข้อมูลที่สองและกำหนดค่าบันทึกการจัดส่งจากศูนย์ ปัญหาที่ฉันมีตอนนี้คือฐานข้อมูลรองของฉันอยู่ในสถานะการกู้คืนและฉันไม่สามารถลบได้ ฉันจะดำเนินการต่อได้อย่างไร ตัวอย่างเช่นหากฉันพยายามทำให้พวกเขาออฟไลน์ฉันจะได้รับข้อผิดพลาด ALTER DATABASE is not permitted while the database is in the Restoring state.

3
สิ่งที่ดึงมาจากดิสก์ในระหว่างการสืบค้น?
คำถามธรรมดาค่อนข้างน่าจะมีคำตอบอยู่บ้าง แต่ฉันไม่สามารถสร้างคำถามค้นหาที่เหมาะสมสำหรับ Google ... จำนวนคอลัมน์ในตารางใดตารางหนึ่งมีผลต่อประสิทธิภาพของแบบสอบถามหรือไม่เมื่อทำการสอบถามในชุดย่อยของตารางนั้น ตัวอย่างเช่นหากตาราง Foo มี 20 คอลัมน์ แต่แบบสอบถามของฉันเลือกเพียง 5 คอลัมน์เหล่านั้นจะมีคอลัมน์ 20 (เทียบกับพูด 10) มีผลต่อประสิทธิภาพการค้นหาหรือไม่ สมมติว่าความเรียบง่ายนั้นมีอะไรรวมอยู่ใน WHERE clause ในคอลัมน์ 5 คอลัมน์เหล่านั้น ฉันกังวลเกี่ยวกับการใช้แคชบัฟเฟอร์ของ Postgres นอกเหนือจากดิสก์แคชของระบบปฏิบัติการ ฉันไม่เข้าใจการออกแบบที่จัดเก็บข้อมูลจริงของ Postgres ตารางถูกเก็บไว้ในหลาย ๆ หน้า (ขนาดเริ่มต้นที่ 8k ต่อหน้า) แต่ฉันไม่เข้าใจว่าจะมีการจัดเรียงทูเปิลอย่างไร PG ฉลาดพอที่จะดึงข้อมูลจากดิสก์ที่ประกอบด้วยคอลัมน์ 5 คอลัมน์เหล่านั้นได้หรือไม่

2
วิธีเพิ่มผู้ใช้ด้วยการเข้าถึงมุมมองเดียว?
ฉันทำงานกับ MSSQL Server Management Studio 2008 และฉันจำเป็นต้องเปิดเผยมุมมองต่อบุคคลที่สามสำหรับการปรับยอดข้อมูลให้ตรงกัน ฉันสร้างมุมมองที่เหมาะสม แต่ฉันมีปัญหาในการสร้างผู้ใช้และให้สิทธิ์ที่เหมาะสมแก่ผู้ใช้ในการเลือกจากมุมมอง ฉันติดตามพ่อมดเพื่อสร้างการเข้าสู่ระบบและผู้ใช้แล้วเพิ่มมุมมองของฉันในส่วนที่ปลอดภัยด้วยกล่องสิทธิ์ที่เลือกไว้ ทุกอย่างดูเหมือนจะดี แต่เมื่อฉันเข้าสู่ระบบในฐานะผู้ใช้นั้นและพยายามที่จะทำ "เลือก * จาก MyViewName" มันบอกฉันว่าการอนุญาตเลือกถูกปฏิเสธ ฉันเพิ่งสร้างผู้ใช้ใหม่ (คราวนี้ใช้ SQL แทนตัวช่วยสร้าง) และได้รับการอนุญาตอย่างชัดเจนและตอนนี้มันทำให้ฉันเกิดข้อผิดพลาด: Msg 916, Level 14, State 1, Line 2 The server principal "username" is not able to access the database "unrelated_db" under the current security context.(ฉันไม่รู้ว่าทำไมมันถึงพยายามเข้าถึงฐานข้อมูลที่ไม่เกี่ยวข้อง ... ) ฉันไม่รู้จะไปจากที่นี่จริงๆ …

1
พฤติกรรมของข้อมูลในดัชนีตามปัจจัยการเติม
สมมติว่าคุณมีฐานข้อมูลที่ปัจจัยการเติมเริ่มต้นคือ 20 เมื่อใดก็ตามที่ข้อมูลถูกแทรกมันจะสร้างหน้าเว็บที่เต็มไปถึง 20% เท่านั้นหรือไม่? จากความเข้าใจของฉันเมื่อข้อมูลถูกแทรกจะมีประมาณ 20% ของข้อมูลในหน้า อย่างไรก็ตามเมื่อมีการอัพเดทข้อมูลมันจะขยายไปเป็นดัชนีมากกว่า 20% เพื่อบรรจุและสร้างการแบ่งหน้าใช่ไหม?

5
เครื่องมือที่ดีสำหรับการแสดงผลงาน SQL Agent คืออะไร [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับผู้ดูแลฐานข้อมูล Exchange Exchange ปิดให้บริการใน4 ปีที่แล้ว ฉันพบว่าเครื่องมือ MS SQL Studio ในตัวสำหรับการจัดการงานตัวแทนให้น่าผิดหวังเล็กน้อย คุณพบว่ามีเครื่องมืออะไรบ้างที่เป็นประโยชน์ Offhand มีสามสิ่งที่ฉันต้องการเห็นในเครื่องมือดังกล่าว: สรุปกราฟิกของงานที่ทำงานเมื่อนานเท่าไหร่และไม่ว่าพวกเขาจะประสบความสำเร็จ มุมมองสถานะปัจจุบันเช่น Job Activity Monitor แต่รีเฟรชในเวลาจริง อินเทอร์เฟซที่สะดวกกว่าสำหรับทำซ้ำหรือแก้ไขงาน (เช่นเปรียบเทียบสองขั้นตอนงานโดยไม่ถูกบล็อกโดยกล่องโต้ตอบโมดอล) มันอาจจะง่ายในการเขียนแอพเล็ก ๆ น้อย ๆ เพื่อจัดการสิ่งนี้ แต่มีบางคนทำไปแล้วและทำได้ดีกว่า เห็นได้ชัดว่านี่เป็นคำถามเชิงอัตวิสัยดังนั้นหากมีการดัดแปลงบางอย่างที่ผ่านมาแล้วอย่าลังเลที่จะทำให้มันเป็น CW

2
SQL Server VARCHAR ความกว้างคอลัมน์
ฉันพบคำแนะนำที่ขัดแย้งกันว่ามีผลกระทบต่อประสิทธิภาพการทำงานหรือไม่เมื่อระบุคอลัมน์ VARCHAR กว้างเกินไปเช่น VARCHAR (255) เมื่อ VARCHAR (30) อาจทำ ฉันเห็นข้อตกลงอย่างสม่ำเสมอว่ามีการดำเนินการอย่างต่อเนื่องหากทั้งแถวเกินกว่า 8060 ไบต์ นอกจากนั้นฉันเห็นความไม่ลงรอยกัน การอ้างสิทธิ์เป็นจริงThe default is SET ANSI PADDING ON = potential for lots of trailing spacesหรือไม่ ตราบใดที่ความกว้างแถวรวมน้อยกว่า 8060 มีความกังวลเกี่ยวกับประสิทธิภาพที่แท้จริงในคอลัมน์ VARCHAR ที่มีขนาดใหญ่เกินไปหรือไม่? หลักฐานที่แสดงความกว้างของคอลัมน์นั้นสำคัญ The same goes for CHAR and VARCHAR data types. Don’t specify more characters in character columns that …

3
เหตุใดคำสั่ง ALTER TABLE แบบธรรมดาจึงใช้เวลานานในตารางที่มีดัชนีข้อความแบบเต็ม?
ฉันมีตารางชื่อมูลค่าขนาดใหญ่ (~ 67 ล้านแถว) ที่มีการจัดทำดัชนีข้อความแบบเต็มในDataValueคอลัมน์ ถ้าฉันพยายามเรียกใช้คำสั่งต่อไปนี้: ALTER TABLE VisitorData ADD NumericValue bit DEFAULT 0 NOT NULL; มันทำงานเป็นเวลา 1 ชั่วโมง 10 นาทีและยังไม่เสร็จสมบูรณ์ในVisitorDataตารางที่มีประมาณ 67 ล้านแถว ทำไมการดำเนินการนี้ใช้เวลานานและไม่เสร็จสมบูรณ์ ฉันจะทำอะไรได้บ้าง นี่คือรายละเอียดเพิ่มเติมเกี่ยวกับตาราง: CREATE TABLE [dbo].[VisitorData]( [VisitorID] [int] NOT NULL, [DataName] [varchar](80) NOT NULL, [DataValue] [nvarchar](3800) NOT NULL, [EncryptedDataValue] [varbinary](max) NULL, [VisitorDataID] [int] IDENTITY(1,1) NOT NULL, CONSTRAINT …

5
ประสิทธิภาพของเซิร์ฟเวอร์ SQL ที่เชื่อมโยงกับเซิร์ฟเวอร์: เหตุใดแบบสอบถามระยะไกลจึงมีราคาแพง
ฉันมีเซิร์ฟเวอร์ฐานข้อมูลสองตัวเชื่อมต่อผ่านเซิร์ฟเวอร์ที่เชื่อมโยง ทั้งสองเป็นฐานข้อมูล SQL Server 2008R2 และการเชื่อมต่อเซิร์ฟเวอร์ที่เชื่อมโยงจะทำผ่านลิงค์ "SQL Server" ปกติโดยใช้บริบทความปลอดภัยของการเข้าสู่ระบบปัจจุบัน เซิร์ฟเวอร์ที่เชื่อมโยงนั้นมีทั้งในดาต้าเซ็นเตอร์เดียวกันดังนั้นการเชื่อมต่อจึงไม่เป็นปัญหา ฉันใช้แบบสอบถามต่อไปนี้เพื่อตรวจสอบว่าค่าของคอลัมน์identifierใดที่พร้อมใช้งานจากระยะไกล แต่ไม่ใช่ภายในเครื่อง SELECT identifier FROM LinkedServer.RemoteDb.schema.[TableName] EXCEPT SELECT DISTINCT identifier FROM LocalDb.schema.[TableName] identifierบนโต๊ะทั้งสองเป็นดัชนีที่ไม่ใช่คลัสเตอร์ในคอลัมน์ ในพื้นที่มีแถว 2.6M แถวจากระยะไกลเพียง 54 แต่เมื่อมองไปที่แผนแบบสอบถาม 70% ของเวลาดำเนินการจะถูกใช้เพื่อ "ประมวลผลแบบสอบถามระยะไกล" นอกจากนี้เมื่อศึกษาแผนคิวรีที่สมบูรณ์จำนวนแถวท้องถิ่นโดยประมาณนั้น1แทน2695380(ซึ่งคือจำนวนแถวโดยประมาณเมื่อเลือกเฉพาะคิวรีที่มาหลังจากนั้นEXCEPT) เมื่อดำเนินการค้นหานี้จะใช้เวลานานแน่นอน มันทำให้ฉันประหลาดใจ: ทำไมถึงเป็นอย่างนี้? การประมาณค่าเป็น "เพียงแค่" ปิดหรือมีการสอบถามระยะไกลบนเซิร์ฟเวอร์ที่เชื่อมโยงที่มีราคาแพงจริงๆ?

1
กำลังกู้คืนฐานข้อมูล 'MyDb' รอจนกว่าการกู้คืนจะเสร็จสิ้น
ฉันได้รับข้อผิดพลาด: กำลังกู้คืนฐานข้อมูล 'MyDb' รอจนกว่าการกู้คืนจะเสร็จสิ้น ฉันมีการดำเนินการที่สำคัญในเวลานั้น สาเหตุของสถานการณ์นี้คืออะไร? และจะหลีกเลี่ยงได้อย่างไร

2
การทำความเข้าใจรูปแบบเวลาของคำสั่งอธิบาย - Postgres
เมื่อฉันเรียกใช้คำสั่งอธิบายวิเคราะห์ในแบบสอบถามที่ระบุฉันมีเวลายากที่จะตีความค่าเวลาเอาท์พุท ตัวอย่างเช่น (เวลาจริง = 8163.890..8163.893) ทศนิยมภายในแสดงถึงอักขระที่ซ้ำกันหรือไม่? ขออภัยนี่อาจเป็นคำถามที่ไม่มีเสียงรบกวน แต่ฉันต้องการตรวจสอบให้แน่ใจว่าฉันตีความผลลัพธ์อย่างถูกต้อง -> GroupAggregate (cost=2928781.21..2929243.02 rows=1 width=27712) (actual time=8163.890..8163.893 rows=1 loops=1)

1
จำนวนข้อมูลต่อโหนดใน Neo4j
ฉันต้องการเก็บข้อมูลจำนวนมากต่อโหนดใน Neo4j ข้อมูลเป็น Unicode ของข้อความ จริง ๆ แล้วไม่ใช่ว่าทุก ๆ ปมจะมีชิ้นใหญ่ แต่หลายคนจะ ฉันอ่านเอกสาร แต่ไม่พบการพูดถึงขนาดโหนด - ปริมาณข้อมูลที่โหนดเดียวสามารถมีได้ ไม่มีใครมีความคิดใด ๆ
14 nosql  neo4j 

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