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

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

5
PostgreSQL: วิธีสร้างสคีมาฐานข้อมูลแบบเต็มในฐานข้อมูลเดียวกันได้อย่างไร
คำถามนี้ถูกโยกย้ายจาก Stack Overflow เพราะสามารถตอบได้ใน Exchange Administrators Stack Exchange อพยพ 7 ปีที่ผ่านมา ฉันจะคัดลอกpublicสคีมาของฉันลงในฐานข้อมูลเดียวกันที่มีโครงสร้างตารางเต็มรูปแบบ, ข้อมูล, ฟังก์ชั่น, fk, pk และอื่น ๆ เวอร์ชัน Postgres ของฉันคือ 8.4 PS ฉันต้องคัดลอกสคีมาฐานข้อมูล
26 postgresql 

7
พยายามค้นหาครั้งล่าสุดที่มีการเปลี่ยนแปลงค่า
ฉันมีตารางที่มี ID ค่าและวันที่ มี ID, ค่าและวันที่จำนวนมากในตารางนี้ บันทึกจะถูกแทรกลงในตารางนี้เป็นระยะ ID จะยังคงเหมือนเดิม แต่บางครั้งค่าจะเปลี่ยน ฉันจะเขียนคิวรีที่จะให้ ID พร้อมกับเวลาที่มีการเปลี่ยนแปลงค่าล่าสุดได้อย่างไร หมายเหตุ: ค่าจะเพิ่มขึ้นเสมอ จากข้อมูลตัวอย่างนี้: Create Table Taco ( Taco_ID int, Taco_value int, Taco_date datetime) Insert INTO Taco Values (1, 1, '2012-07-01 00:00:01'), (1, 1, '2012-07-01 00:00:02'), (1, 1, '2012-07-01 00:00:03'), (1, 1, '2012-07-01 00:00:04'), (1, 2, '2012-07-01 00:00:05'), …

7
ทำไมต้องใช้ innodb_file_per_table
มีบทความจำนวนมากเกินความจริง (IMHO ของหลักสูตร) innodb_file_per_tableจำเป็นที่จะต้องมี ฉันเข้าใจว่าด้วยinnodb_file_per_tableควรมีการควบคุมที่ดีกว่าตารางบุคคล เช่นการสำรองข้อมูลแต่ละตารางแยกจากกัน อย่างไรก็ตามการเรียกร้องเพื่อประสิทธิภาพที่ดีขึ้นเป็นที่น่าสงสัย ในการทดสอบของฉันไม่มีความแตกต่างของประสิทธิภาพinnodb_file_per_tableและibdata1ฐานข้อมูล 60GB แน่นอนว่ามันเป็นแบบทดสอบง่ายๆที่มีคำสั่งปกติและสถานการณ์อาจแตกต่างกันไปสำหรับการค้นหาที่ซับซ้อนในชีวิตจริง (นี่คือเหตุผลที่ฉันถามคำถามนี้) Linux 64 บิตพร้อมกับext4สามารถจัดการไฟล์ขนาดใหญ่ได้อย่างมีประสิทธิภาพ ด้วยinnodb_file_per_tableการดำเนินการดิสก์ I / O เพิ่มเติมจำเป็น และสิ่งนี้มีความสำคัญในข้อ จำกัดJOINและความซับซ้อนFOREIGN KEY Tablespace ใช้งานร่วมกันบน single ibdata; พื้นที่ตารางเฉพาะสำหรับตารางแยกต่างหากสามารถประหยัดพื้นที่ดิสก์ได้อย่างไร แน่นอนว่ามันเป็นเรื่องง่ายกว่าที่จะเพิ่มพื้นที่ว่างสำหรับแต่ละตารางด้วยALTERแต่ก็ยังเป็นกระบวนการที่มีราคาแพง (ด้วยการล็อคตาราง) คำถาม:ไม่innodb_file_per_tableมีผลกระทบต่อผลการดำเนินงานที่ดีขึ้นของ MySQL? ถ้าใช่ทำไม


3
รหัสเพื่อจำลองการหยุดชะงัก
ฉันกำลังทดสอบแอปพลิเคชันของฉันฉันต้องการรหัสบางอย่างที่เสถียรจำลองการหยุดชะงักบนเว็บไซต์ฐานข้อมูล (สคริปต์ sql ถ้าเป็นไปได้) ขอขอบคุณ. เพิ่ม: สร้าง deadlock ที่เกี่ยวข้องกับตารางเดียวเท่านั้น

2
เหตุใดแบบสอบถามย่อยจึงลดการประมาณแถวเป็น 1
พิจารณาแบบสอบถามที่ประดิษฐ์ แต่เรียบง่ายต่อไปนี้: SELECT ID , CASE WHEN ID <> 0 THEN (SELECT TOP 1 ID FROM X_OTHER_TABLE) ELSE (SELECT TOP 1 ID FROM X_OTHER_TABLE_2) END AS ID2 FROM X_HEAP; ฉันคาดว่าการประมาณการแถวสุดท้ายสำหรับเคียวรีนี้จะเท่ากับจำนวนแถวในX_HEAPตาราง สิ่งที่ฉันทำในแบบสอบถามย่อยไม่ควรสำคัญกับการประมาณแถวเพราะมันไม่สามารถกรองแถวใด ๆ ออกได้ อย่างไรก็ตามใน SQL Server 2016 ฉันเห็นการประมาณแถวลดลงเป็น 1 เนื่องจากแบบสอบถามย่อย: ทำไมสิ่งนี้ถึงเกิดขึ้น ฉันจะทำอะไรได้บ้าง มันง่ายมากที่จะทำซ้ำปัญหานี้ด้วยไวยากรณ์ที่ถูกต้อง นี่คือคำจำกัดความของตารางหนึ่งชุดที่จะทำ: CREATE TABLE dbo.X_HEAP (ID INT NOT …

8
ทำไมจึงเป็นการดีที่จะอนุญาตให้ทุกคนใช้การเข้าสู่ระบบ sa
แม้แต่ Microsoft ไม่สนับสนุนการใช้โหมดการรับรองความถูกต้องของ SQL Serverแต่แอปพลิเคชันของเราต้องการ ฉันได้อ่านว่าเป็นวิธีปฏิบัติที่ดีที่สุดที่จะไม่อนุญาตให้ผู้ใช้ใช้การsaเข้าสู่ระบบโดยตรงแทนการใช้ Windows Authentication และการอนุญาตสิทธิ์ดูแลระบบบัญชี (หรือกลุ่มบัญชี) เหล่านั้น นั่นไม่ใช่สิ่งเดียวกัน ข้อดี / ข้อเสียคืออะไร? แนวปฏิบัติที่เหมาะสมที่สุดเพิ่มความปลอดภัยของอินสแตนซ์ SQL Server ของฉันได้อย่างไร สิ่งนี้ใช้ได้กับอินสแตนซ์การผลิตหรือกับอินสแตนซ์การพัฒนาภายในของเราด้วยหรือไม่

1
SQL Server 2017 ล้มเหลวเมื่อสำรองข้อมูลเนื่องจาก filepath ไม่ถูกต้อง
ฉันพยายามกู้คืนฐานข้อมูลและ SQL Server หยุดทำงาน ฉันจะได้รับข้อความใน SSMS ที่กล่าวว่ามีข้อผิดพลาดในการส่งผ่านเครือข่าย (การเชื่อมต่อลดลงเมื่อเกิดข้อผิดพลาด) ฉันตรวจสอบบันทึกและพบว่าไม่มีอะไรมากไปกว่า SQL Server ปิดโดยไม่คาดหมาย ฉันจะต้องไปและเริ่มบริการใหม่ ฉันลดปัญหาให้แคบลงจนถึงสคริปต์ที่ GUI พยายามเรียกใช้ ปัญหาคือเมื่อมันทำการสำรองหางบันทึกเส้นทางไปยังแฟ้มสำรองข้อมูลไม่ถูกต้อง มันควรจะเป็นD:\mapbenefits\... BACKUP LOG [mapbenefits] TO DISK = N'D:mapbenefits_LogBackup_2019-02-21_13-58-24.bak' WITH NOFORMAT, NOINIT, NAME = N'mapbenefits_LogBackup_2019-02-21_13-58-24', NOSKIP, NOREWIND, NOUNLOAD, NORECOVERY , STATS = 5 ฉันมีสองคำถาม ฉันจะแก้ไขเส้นทางนี้ได้อย่างไร ฉันพยายามไปที่การตั้งค่าเซิร์ฟเวอร์และเส้นทางการสำรองข้อมูลD:โดยไม่มีเครื่องหมายทับ ถ้าฉันเพิ่มเครื่องหมายสแลช gui จะลบออก นี่คือ SSMS v17.9.1 ฉันสามารถเลือกD:\mapbenefits\และใช้งานได้ แต่ฉันต้องการD:\DATABASE\... …

3
Management Studio ถูกลบออกจากสื่อการติดตั้ง SQL Server 2016 หรือไม่
ฉันเพิ่งลองติดตั้ง SQL Server 2016 Enterprise แต่ฉันสังเกตว่า Management Studio ไม่ได้ติดตั้งตามค่าเริ่มต้น ฉันยังสังเกตเห็นว่ามีลิงก์แยกต่างหากไปยัง SSMS ในคู่มือการติดตั้งซึ่งชี้ไปที่https://msdn.microsoft.com/en-us/library/mt238290.aspx เหตุผลในการตัดสินใจครั้งนี้คืออะไร? ต่อไปนี้ถูกบันทึกไว้ใน URL ด้านบน: SSMS รุ่นที่มีให้โดยทั่วไปนี้ให้บริการฟรีและไม่ต้องการสิทธิ์ใช้งาน SQL Server เพื่อติดตั้งและใช้งาน บางทีนี่มัน?
25 sql-server  ssms 

1
ลำดับ - ไม่มีแคชเทียบกับ CACHE 1
มีความแตกต่างระหว่างการSEQUENCEประกาศใช้NO CACHEและประกาศใช้CACHE 1ใน SQL Server 2012+? ลำดับ # 1: CREATE SEQUENCE dbo.MySeqCache1 AS INT START WITH 1 INCREMENT BY 1 MINVALUE 1 MAXVALUE 9999 NO CYCLE CACHE 1; GO ลำดับ # 2: CREATE SEQUENCE dbo.MySeqNoCache AS INT START WITH 1 INCREMENT BY 1 MINVALUE 1 MAXVALUE 9999 NO CYCLE NO …

4
ฉันควรอัปเดตอย่างชัดเจนไปยังคอลัมน์ที่ไม่ควรอัปเดตหรือไม่
ฉันคุ้นเคยกับการทำงานในสภาพแวดล้อมที่ปลอดภัยและดังนั้นฉันจึงออกแบบการอนุญาตของฉันให้ดีมาก สิ่งหนึ่งที่ฉันทำตามปกติคือDENYผู้ใช้สามารถระบุUPDATEคอลัมน์ที่ไม่ควรอัปเดตได้อย่างชัดเจน ตัวอย่างเช่น: create table dbo.something ( created_by varchar(50) not null, created_on datetimeoffset not null ); คอลัมน์สองเหล่านี้ไม่ควรเปลี่ยนแปลงเมื่อมีการตั้งค่า ดังนั้นผมจะชัดเจนรับอนุญาตเกี่ยวกับพวกเขาDENYUPDATE เมื่อเร็ว ๆ นี้ในระหว่างการประชุมทีมนักพัฒนาได้ยกประเด็นที่ตรรกะเพื่อให้แน่ใจว่าเขตข้อมูลที่ไม่เคยได้รับการปรับปรุงควรจะอยู่ในเลเยอร์แอปพลิเคชันและไม่ใช่ชั้นฐานข้อมูลในกรณีที่ "พวกเขาจำเป็นต้องปรับปรุงค่า สำหรับฉันแล้วดูเหมือนว่าความคิด dev ทั่วไป (ฉันรู้ว่าฉันเคยเป็นหนึ่ง!) ฉันเป็นสถาปนิกอาวุโสที่ บริษัท ของฉันและฉันได้ทำงานตามหลักการของสิทธิพิเศษจำนวนน้อยที่สุดที่ต้องใช้เพื่อให้แอปทำงานได้ สิทธิ์ทั้งหมดจะได้รับการตรวจสอบเป็นประจำ แนวปฏิบัติที่ดีที่สุดในสถานการณ์นี้คืออะไร?

1
PostgreSQL ลบจากล้มเหลวด้วยข้อผิดพลาด: พยายามที่จะลบ tuple ที่มองไม่เห็น
คำถามนี้ถูกโยกย้ายจาก Server Fault เนื่องจากสามารถตอบได้ใน Exchange Administrators Stack Exchange อพยพ 3 ปีที่แล้ว ความผิดพลาด กำลังพยายามลบสิ่งอันดับที่มีการประทับเวลาที่ไม่ถูกต้องด้วย DELETE FROM comments WHERE date > '1 Jan 9999' OR date < '1 Jan 2000' OR date_found > '1 Jan 9999' OR date_found < '1 Jan 2000'; สิ้นสุดลงใน ERROR: attempted to delete invisible tuple มีรายชื่อผู้รับจดหมายจากปี 2009 ที่พูดถึงข้อความแสดงข้อผิดพลาดเดียวกันที่ …

4
ไอคอนสีน้ำเงินพร้อมเครื่องหมายคำถามหมายความว่าอะไร
อินสแตนซ์ของ SQL Server นั้นสามารถเข้าถึงได้และดูเหมือนว่าจะใช้ได้ Microsoft SQL Server 2016 (SP1-CU2) (KB4013106) - 13.0.4422.0 (X64) 6 มีนาคม 2017 14:18:16 ลิขสิทธิ์ (c) Microsoft Corporation รุ่นองค์กรองค์กร (64 บิต) บน Windows Server 2012 R2 มาตรฐาน 6.3 (รุ่น 9600) :) (Hypervisor) แต่เครื่องหมายคำถามสีขาวมีความหมายว่าอย่างไร ไอคอนเหล่านี้ไม่หายไปเมื่อฉันรีเฟรช ฉันดูแลระบบภายในเซิร์ฟเวอร์ sql และภายนอกฉันเป็นผู้ดูแลระบบในกล่องนั้น อีกสิ่งที่ฉันสังเกตเห็นคุณสามารถดูในภาพด้านล่าง เหล่านี้เป็น 2 เซสชันการจัดการสตูดิโอที่แตกต่างกัน ด้านบนหนึ่งผมกำลังเข้าสู่ระบบเป็นตัวเองDBA and sysadminในหนึ่งวินาทีผมใช้ Studio จัดการกับและฉันจะใช้บัญชีโดเมนที่จะใช้สำหรับการจำลองแบบซึ่งไม่ได้เป็นrun as …

3
พฤติกรรมแปลก ๆ พร้อมขนาดตัวอย่างสำหรับการอัพเดทสถิติ
ฉันได้รับการตรวจสอบเกณฑ์การสุ่มตัวอย่างด้วยการปรับปรุงสถิติใน SQL Server (2012) และสังเกตเห็นพฤติกรรมที่น่าสงสัย โดยทั่วไปจำนวนแถวตัวอย่างที่ดูเหมือนจะแตกต่างกันภายใต้สถานการณ์บางอย่าง - แม้จะมีชุดข้อมูลเดียวกัน ฉันเรียกใช้แบบสอบถามนี้: --Drop table if exists IF (OBJECT_ID('dbo.Test')) IS NOT NULL DROP TABLE dbo.Test; --Create Table for Testing CREATE TABLE dbo.Test(Id INT IDENTITY(1,1) CONSTRAINT PK_Test PRIMARY KEY CLUSTERED, TextValue VARCHAR(20) NULL); --Insert enough data so we have more than 8Mb (the threshold at …


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