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

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

2
การเก็บราคาใน SQLite ต้องใช้ data ชนิดใด?
ฉันใช้ SQLite และต้องการเก็บราคา REALประเภทข้อมูลของ SQLite บอกว่ามันใช้floating-pointซึ่งเป็นที่เก็บข้อมูลที่ยอมรับไม่ได้สำหรับราคา มี data-type นอกเหนือจาก TEXT ที่ฉันสามารถใช้เพื่อเก็บราคาเป็นตัวเลขเพื่อให้เรียงลำดับถูกต้องหรือไม่

4
เรียกใช้งานสคริปต์ด้วย SQLPlus ที่มีช่องว่างเซมิโคลอนและเครื่องหมายสแลช
ในบางครั้งฉันจะได้รับสคริปต์ที่จะทำงานได้ดีใน SQL Developer หรือ Toad แต่ต้องการการปรับเปลี่ยนเพื่อให้สามารถเรียกใช้จาก SQL * Plus ได้สำเร็จ นี่เป็นตัวอย่างกรณีที่เลวร้ายที่สุดที่มีหลายประโยคคำสั่งที่มีบรรทัดว่างเซมิโคลอนและเครื่องหมายสแลช: INSERT INTO t1 VALUES ('a ; / '); INSERT INTO t1 VALUES ('b ; / '); DELETE FROM t1 WHERE c1 = 'c ; / '; ด้วยเหตุผลต่างๆคำสั่งเหล่านี้จำเป็นต้องเรียกใช้จาก SQL * Plus บรรทัดว่างจะแก้ไขได้ง่ายด้วย ... set sqlblanklines on ฉันทราบว่าsqlterminatorสามารถเปลี่ยนแปลงและ / หรือปิดการใช้งาน แต่ทั้งคู่จะต้องมีการปรับเปลี่ยนรหัสก่อนหน้านี้จะย้ายปัญหาโดยไม่ต้องแก้ไขและไม่สามารถแก้ไขปัญหาที่ฝังอยู่ในสแลชได้ …

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

4
ฟิลด์ INCLUDE ดัชนีขนาดใหญ่จะมีผลต่อประสิทธิภาพของระบบอย่างไร
คำถามนี้เป็นคำถามเกี่ยวกับประสิทธิภาพของดัชนี SQL Server กับvarchar(2000)เป็นINCLUDEในดัชนีที่ครอบคลุม ฉันพยายามปรับปรุงประสิทธิภาพในแอปพลิเคชันฐานข้อมูลที่ช้าและไม่เสถียร ในบางกรณีข้อมูลที่มีการเข้าถึงผ่านสตริง varchar ขนาดใหญ่ที่มีการค้นหารวมทั้งการดำเนินสตริง multple เหมือนSUBSTRING(), และSPACE() DATALENGTH()นี่คือตัวอย่างที่ง่ายของการเข้าถึง update fattable set col3 = SUBSTRING(col3,1,10) + '*' + SUBSTRING(col3,12,DATALENGTH(col3)-12) from fattable where substring(col3,10,1) = 'A' and col2 = 2 สคีมามีลักษณะดังนี้: CREATE TABLE [dbo].[FatTable]( [id] [bigint] IDENTITY(1,1) NOT NULL, [col1] [nchar](12) NOT NULL, [col2] [int] NOT NULL, [col3] …

2
คำว่า "การฉายภาพ" หมายถึงอะไรในแบบสอบถาม SQL (หรือดูคำจำกัดความ)
ในเอกสารของ Oracle The Query Optimizerภายใต้View Mergingฉันพบข้อมูลต่อไปนี้ การเพิ่มประสิทธิภาพการรวมมุมมองนำไปใช้กับมุมมองที่มีเฉพาะการเลือกการคาดการณ์และการรวม นั่นคือมุมมองที่ผสานได้ไม่มีตัวดำเนินการตั้งค่าฟังก์ชันการรวม DISTINCT GROUP BY เชื่อมต่อ BY และอื่น ๆ (เน้นที่เหมือง) แต่ฉันสามารถคาดเดาได้ว่าการฉายภาพตามความเป็นจริงหมายถึงอะไร
15 oracle  select 

2
การลบ / ปรับปรุงข้อมูลทางนิติเวช
ฉันต้องการลบข้อมูลทางนิติเวชออกจาก oracle หากฉันเพิ่งลบมันความเข้าใจของฉันคือข้อมูลจะยังคงอยู่ในไฟล์ข้อมูลจนกว่าจะนำพื้นที่นั้นกลับมาใช้ใหม่ ฉันไม่ได้กังวลเกี่ยวกับการทำซ้ำ / เก็บถาวร / เลิกพื้นที่เหล่านั้นจะหมดอายุเร็วพอสมควร มีวิธีใดที่จะทำให้แน่ใจว่าข้อมูลถูกลบออกจากไฟล์ข้อมูลจริงหรือไม่?
15 oracle  security 

2
การออกแบบฐานข้อมูลแบบสอบถาม - วิธีไหนดีกว่ากัน
ฉันมีหน้า html ยาวหนึ่งหน้าชุดคำถามหลายชุดแบ่งออกเป็นส่วนเล็ก ๆ (ประมาณ 15 ส่วนย่อยในหน้าเดียว) คำถามทั้งหมดมีประมาณ 100 คำถาม: แตกต่างกันไปจากอินพุตตัวเลือกหลายตัวเลือกช่องทำเครื่องหมายปุ่มตัวเลือกข้อความ และอัพโหลดไฟล์ คำถามหนึ่งข้ออาจมีคำตอบมากมายซึ่งได้มาจากกลุ่มของช่องทำเครื่องหมายกลุ่มของรายการที่เลือกกลุ่มของหลายตัวเลือกหรือทั้งหมดรวมกันเป็นคำตอบเดียว ฉันคิดว่าฉันจะใช้การออกแบบฐานข้อมูลด้านล่าง แต่พบว่าเมื่อเร็ว ๆ นี้ว่ามันไม่ใช่วิธีการที่ดี ลูกค้าหนึ่งรายสามารถมีคำถามได้หนึ่งชุดเท่านั้น: ลูกค้าหนึ่งรายต่อคำถาม 100 ข้อ สำหรับวิธีเก่าฉันไม่เก็บคำถามในฐานข้อมูล แต่กำหนดเป็นค่าคงที่ในการเข้ารหัส PHP แทน ปัญหาคือฉันต้องเปรียบเทียบคำถามใน PHP เพื่อให้ตรงกับคำตอบในฐานข้อมูล หากคำถามหนึ่งมีการเปลี่ยนแปลง / ลบ / ย้ายจาก PHP ฉันจะหลงทางเพื่อให้ตรงกับคำตอบในฐานข้อมูลแบบสอบถาม ทางออกที่ดีกว่า ฉันสามารถเก็บหลายคำตอบที่ได้รับจากองค์ประกอบหลายอย่างในรูปแบบลงในฟิลด์เดียวเป็นคำตอบเดียว ฉันจะดึงข้อมูลนี้และแสดงมันอีกครั้งเพื่อให้ลูกค้าดูในแบบฟอร์มได้อย่างไร? ฉันควรเลือกตัวเลือกใดด้านล่างนี้ ตัวเลือก 1: วิธีการแบบเก่า (1 ตาราง) ตาราง: แบบสอบถาม ID (PK) รหัสลูกค้า สถานะ …

3
PostgreSQL เทียบกับ MySQL: การเปรียบเทียบคุณสมบัติเชิงพื้นที่
เรากำลังอยู่ระหว่างการสร้างเว็บแอปพลิเคชันที่มีองค์ประกอบข้อมูลเชิงพื้นที่ ในการเริ่มต้นการเปรียบเทียบข้อมูลเชิงพื้นที่ของเราจะใช้จุดที่กำหนดและกลับมาจับคู่รูปหลายเหลี่ยมเชิงพื้นที่ที่ทับซ้อนกัน ดังที่กล่าวไปแล้วฐานข้อมูลของเรามีส่วนประกอบอื่น ๆ มากมายซึ่งรวมถึงสิ่งทั่วไปที่คุณจะพบในฐานข้อมูลเชิงสัมพันธ์ทั่วไปของคุณ เราอยู่ในจุดที่โครงการของเราต้องเลือกโซลูชันฐานข้อมูลที่จะใช้ สมาชิกโครงการทุกคนมีความคุ้นเคยกับการใช้และการบริหารจัดการของ MySQL มากขึ้น แต่งานวิจัยทั้งหมดชี้ให้เห็นว่า PostgreSQL เป็นทางออกที่ดีกว่าโดยเฉพาะอย่างยิ่งในเรื่องข้อมูลเชิงพื้นที่โดยใช้ postGIS เราคาดหวัง (ความหวัง) แอปพลิเคชันของเราจะได้สัมผัสกับการกระทำมากมายกับผู้ใช้จำนวนมาก ใครบ้างที่มีประสบการณ์การใช้ MySQL เป็น RDBMS ของพวกเขาที่มีองค์ประกอบข้อมูลเชิงพื้นที่มีคำแนะนำ / ประสบการณ์ระยะยาวหรือไม่? มีข้อเสียของการใช้ PostGIS ยกเว้นความคุ้นเคยหรือไม่?

2
Schema-less / ยืดหยุ่น + ฐานข้อมูล ACID?
ฉันกำลังมองหาการเขียนโปรแกรมประยุกต์ VB แบบอิงตามสถานที่ (ติดตั้งในเครื่อง) (ใบแจ้งหนี้ + สินค้าคงคลัง) เป็นแอปพลิเคชัน Clojure บนเว็บสำหรับลูกค้าองค์กรขนาดเล็ก ฉันตั้งใจจะนำเสนอนี้เป็นแอปพลิเคชัน SaaS สำหรับลูกค้าในการค้าที่คล้ายกัน ฉันกำลังดูตัวเลือกฐานข้อมูล: ตัวเลือกของฉันคือ RDBMS: Postgresql / MySQL ฉันอาจขยายผู้ใช้มากถึง 400 คนในปีแรกโดยทั่วไปแล้วมีจำนวนการดู 20-40 หน้า / ต่อวันต่อผู้ใช้ส่วนใหญ่สำหรับธุรกรรมที่ไม่ใช่มุมมองแบบคงที่ แต่ละมุมมองจะเกี่ยวข้องกับการดึงข้อมูลและอัปเดตข้อมูล การปฏิบัติตามข้อกำหนดของกรดเป็นสิ่งที่จำเป็น (หรือฉันคิดว่า) ดังนั้นปริมาณธุรกรรมไม่มาก คงจะไม่มีเกมง่ายๆที่จะเลือกสิ่งเหล่านี้ตามความต้องการของฉัน แต่สำหรับข้อกำหนดนี้ซึ่งฉันเชื่อว่าเป็นเรื่องปกติของแอป SaaS: โครงสร้างจะเปลี่ยนแปลงเมื่อฉันเพิ่มลูกค้า / ผู้ใช้และลูกค้าแต่ละราย การเปลี่ยนแปลงความต้องการทางธุรกิจ (ฉันจะเสนอความยืดหยุ่นที่ จำกัด บางอย่างเท่านั้นเริ่มต้นด้วย) เนื่องจากฉันไม่ใช่ผู้เชี่ยวชาญฐานข้อมูลตามสิ่งที่ฉันคิดและอ่านได้ฉันจึงสามารถจัดการได้หลายวิธี: มีการออกแบบสคีมา RDBMS แบบดั้งเดิมใน MySQl / Postgresql ด้วยฐานข้อมูลเดียวที่โฮสต์ผู้เช่าหลายคน และเพิ่มคอลัมน์ "ลอยฟรี" …

5
PostgreSQL: การเริ่มต้นของคลัสเตอร์ฐานข้อมูลล้มเหลว
ทั้งสองC:\PostgreSQLและC:\PostgreSQL\dataมีpostgresผู้ใช้ที่มีสิทธิ์เข้าถึงแบบเต็มและสิทธิ์ผู้ดูแลระบบ ฉันรัน postgresql-9.1.2-1-windows.exe จากผู้ใช้ postgres ในฐานะผู้ดูแลระบบ เป้าC:\PostgreSQL ทุกวิธีที่ฉันลองฉันจะได้รับ "การเริ่มต้นคลัสเตอร์ฐานข้อมูลล้มเหลว" คำถาม มันจะโอเคไหมที่จะเรียกใช้ทุกอย่างที่ไม่มีบริการ Windows มีการแก้ไขการติดตั้งเป็นบริการของ Windows หรือไม่ ฉันกำลังพยายามตั้งค่า PostGIS ให้ทำงานกับ GeoDjango ฉันสามารถติดตั้ง PostGIS ได้ด้วยตนเอง ใหม่สำหรับ PostgreSQL และฉันมีวิกฤตของความเชื่อมั่นทั้งหมดนี้ มาจาก MySQL ถึง PostgreSQL เป็นครั้งแรก เอาต์พุตบันทึกที่เกี่ยวข้องจาก C: \ Users \ Larry \ AppData \ Local \ Temp \ install-postgresql.log: WScript.Network initialized... Called IsVistaOrNewer()... 'winmgmts' object …

2
วิธีแก้ปัญหาการล้างข้อมูลผีของเซิร์ฟเวอร์ SQL ที่จำเป็น
ฉันมีหลายตารางที่มีจำนวนแถวระหว่าง 5M ถึง 1.5G แต่ละตารางมีเขตข้อมูล BLOB ซึ่งขนาดแตกต่างจาก 100 ไบต์ถึง 30 MBytes และเก็บไว้เป็น 'ประเภทค่าขนาดใหญ่นอกแถว' = ON ตารางจะถูกจัดเก็บในกลุ่มไฟล์ที่แตกต่างกันโดยแต่ละไฟล์มี 3-4 ไฟล์ในดิสก์ที่แตกต่างกัน @ LUNs ที่แตกต่างกัน @ SAN ที่เร็วมาก ทุกวันโต๊ะเหล่านี้มีขนาดโตขึ้น 5-100 Gb และมีแถว 600k - 1.5M หลังจากระยะเวลาหนึ่งซึ่งแตกต่างกันไปจาก 2 สัปดาห์ถึง 6 เดือนแถวบางแถวจะถูกลบหรือย้ายไปเก็บถาวร DB ดังนั้นจึงไม่มีแถวใด ๆ ในเวิร์กทอรีที่มีอายุมากกว่า 6 เดือน การกำหนดค่าปัจจุบันของเซิร์ฟเวอร์: SQL เซิร์ฟเวอร์เอ็นจิ้นคือ 2008 R2 SP1 Enterprise @ …

1
เหตุใดจำนวนการดำเนินการสแกนดัชนีแบบกลุ่มจึงสูงมาก
ฉันมีสองแบบสอบถามที่คล้ายกันที่สร้างแผนแบบสอบถามเดียวกันยกเว้นว่าแผนแบบสอบถามหนึ่งดำเนินการสแกนดัชนีแบบกลุ่ม 1316 ครั้งในขณะที่คนอื่น ๆ ดำเนินการมัน 1 ครั้ง ข้อแตกต่างระหว่างแบบสอบถามทั้งสองนี้คือเกณฑ์วันที่แตกต่างกัน แบบสอบถามที่ใช้เวลานานจริง ๆ แล้ว จำกัด วันที่ให้แคบลงและดึงข้อมูลน้อยลง ฉันได้ระบุดัชนีบางอย่างที่จะช่วยในการสืบค้นทั้งสองข้อ แต่ฉันต้องการเข้าใจว่าทำไมตัวดำเนินการ Clustered Index Scan จึงเรียกใช้งาน 1,316 ครั้งสำหรับการสืบค้นที่เกือบจะเหมือนกับครั้งที่เรียกใช้งาน 1 ครั้ง ฉันตรวจสอบสถิติเกี่ยวกับเภสัชจลนศาสตร์ที่กำลังถูกสแกนและพวกเขาค่อนข้างทันสมัย ข้อความค้นหาเดิม: select distinct FIR_Incident.IncidentID from FIR_Incident left join ( select incident_id as exported_incident_id from postnfirssummary ) exported_incidents on exported_incidents.exported_incident_id = fir_incident.incidentid where FI_IncidentDate between '2011-06-01 00:00:00.000' …

5
การรวม ORDER BY บนเคียวรีที่ส่งคืนแถวไม่มีผลกระทบต่อประสิทธิภาพอย่างมาก
เมื่อพิจารณาการเข้าร่วมตารางที่สามอย่างง่ายประสิทธิภาพการค้นหาจะเปลี่ยนไปอย่างมากเมื่อมีการรวม ORDER BY แม้ว่าจะไม่มีการส่งคืนแถว สถานการณ์ปัญหาที่เกิดขึ้นจริงใช้เวลา 30 วินาทีเพื่อส่งกลับศูนย์แถว แต่เป็นทันทีเมื่อไม่รวม ORDER BY ทำไม? SELECT * FROM tinytable t /* one narrow row */ JOIN smalltable s on t.id=s.tinyId /* one narrow row */ JOIN bigtable b on b.smallGuidId=s.GuidId /* a million narrow rows */ WHERE t.foreignId=3 /* doesn't match */ ORDER BY …

2
“ การคัดลอกไปยังตาราง tmp” ช้ามาก
นี่คือตัวอย่างการสืบค้นของฉัน: SELECT nickname, CASE class_id WHEN 1 THEN 'Druid' WHEN 2 THEN 'Necromancer' WHEN 3 THEN 'Mage' WHEN 4 THEN 'Priest' WHEN 5 THEN 'Warrior' WHEN 6 THEN 'Stalker' WHEN 7 THEN 'Paladin' WHEN 8 THEN 'Psionic' END class_name, ROUND(AVG(level),2) level, ROUND(AVG(tabard_id),2) tabard, CASE rank_id WHEN 1 THEN 'Leader' WHEN …

5
เป็นไปได้ในการโจมตีบนเซิร์ฟเวอร์ SQL ของฉัน
ตรวจสอบบันทึก SQL Server ของฉันฉันเห็นหลายรายการเช่นนี้ Date: 08-11-2011 11:40:42 Source: Logon Message: Login failed for user 'sa'. Reason: Password did not match for the login provided. [CLIENT: 56.60.156.50] Date: 08-11-2011 11:40:42 Source: Logon Message: Error: 18456. Severity: 14. State: 8. Date: 08-11-2011 11:40:41 Source: Logon Message: Login failed for user 'sa'. Reason: …

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