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

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

7
"ฐานข้อมูล" คืออะไร?
มีการอภิปรายกันมากมายในคำถามนี้: เทคโนโลยีฐานข้อมูลใดที่เครื่องมือค้นหาขนาดใหญ่ใช้ การอภิปรายมากมายจนทำให้ฉันสับสน ดังนั้น ... ฐานข้อมูลคืออะไร เป็นเพียงฐานข้อมูลเชิงสัมพันธ์ "ฐานข้อมูล" หรือไม่? ฐานข้อมูลเชิงวัตถุเป็น "ฐานข้อมูล" หรือไม่? เป็นระบบที่อนุญาตให้ฉันจัดเก็บและดึงข้อมูล (เช่นแผนที่รายการ ฯลฯ ) เป็นฐานข้อมูลหรือไม่ หรือฐานข้อมูลจะต้องจัดเก็บ / ดึงข้อมูลและยังมีคุณสมบัติการบริหารบางอย่างเช่นผู้ใช้และสิทธิ์? dBase III บวกกับฐานข้อมูลเพราะมันไม่ใช่เชิงสัมพันธ์จริงเหรอ?

4
รวมคอลัมน์จากหลายแถวเป็นแถวเดียว
ฉันได้customer_commentsแบ่งออกเป็นหลายแถวเนื่องจากการออกแบบฐานข้อมูลและสำหรับรายงานที่ฉันต้องรวมcommentsจากแต่ละที่ไม่ซ้ำกันidเป็นหนึ่งแถว ก่อนหน้านี้ฉันเคยลองบางสิ่งบางอย่างที่ทำงานกับรายการที่มีการคั่นจาก SELECT clause และเคล็ดลับCOALESCEแต่ฉันจำไม่ได้และต้องไม่บันทึกไว้ ฉันไม่สามารถทำให้มันทำงานได้ในกรณีนี้ดูเหมือนว่าจะทำงานในแถวเดียวเท่านั้น ข้อมูลมีลักษณะดังนี้: id row_num customer_code comments ----------------------------------- 1 1 Dilbert Hard 1 2 Dilbert Worker 2 1 Wally Lazy ผลลัพธ์ของฉันต้องมีลักษณะเช่นนี้: id customer_code comments ------------------------------ 1 Dilbert Hard Worker 2 Wally Lazy ดังนั้นสำหรับแต่ละrow_numผลลัพธ์จะมีแถวเดียวเท่านั้น row_numความคิดเห็นที่ควรจะรวมอยู่ในคำสั่งของ SELECTเคล็ดลับที่ถูกเชื่อมโยงข้างต้นนั้นใช้เพื่อให้ได้ค่าทั้งหมดสำหรับการสืบค้นที่เฉพาะเจาะจงเป็นหนึ่งแถว แต่ฉันไม่สามารถหาวิธีที่จะทำให้การทำงานเป็นส่วนหนึ่งของSELECTคำสั่งที่แยกแถวเหล่านี้ออกทั้งหมด ข้อความค้นหาของฉันต้องผ่านทั้งตารางด้วยตัวเองและออกแถวเหล่านี้ ฉันไม่ได้รวมมันไว้ในหลายคอลัมน์หนึ่งแถวสำหรับแต่ละแถวดังนั้นจึงPIVOTดูเหมือนไม่เกี่ยวข้อง

2
จะสร้างการล็อกอินของ sql Server สำหรับบัญชีโดเมนได้อย่างไร
ทั้งหมด ฉันติดตั้ง Sql Server 2008 บนเซิร์ฟเวอร์ (สมมติว่าServer1 ) ในโดเมน (สมมุติว่าAD ) ฉันยังมีบัญชีโดเมนที่เรียกว่าAD \ Sql1 นี้ไม่ได้เป็นบัญชีผู้ดูแลระบบในโดเมน ( AD ) แต่ฉันต้องการให้เป็นผู้ดูแลระบบบนServer1 จากนั้นสร้างการเข้าสู่ระบบบนเซิร์ฟเวอร์ SQL สำหรับบัญชีโดเมนนั้น (ไม่ใช่บัญชีท้องถิ่น) ฉันจะทำอย่างไร คำถาม: ผู้ใช้AD \ Sql1ผมต้องการให้เขาเป็นผู้ดูแลระบบServer1 เพื่อที่ฉันจะสร้างบัญชีท้องถิ่นที่มีชื่อผู้ใช้เดียวกัน (สมมติว่าServer1 \ Sql1 ) และทำให้บัญชีท้องถิ่นเป็นผู้ดูแลระบบบนเครื่อง บัญชีท้องถิ่นนั้นจะถูกแมปกับบัญชีโดเมนที่มีชื่อเดียวกันโดยอัตโนมัติหรือไม่ อาจเป็นฉันควรเพิ่มที่นี่ที่CREATE LOGIN [AD\Sql1] FROM WINDOWSไม่ได้ผลสำหรับฉัน ฉันพยายามและได้รับข้อผิดพลาดที่บอกว่าuser does not exist in Windows(เช่นนั้น) ทีนี้ถ้าเทคนิคข้างต้นใช้ได้ผล ให้ถือว่าAD \ Sql1กลายเป็นผู้ดูแลระบบของSever1 …

2
วิธีเพิ่มพื้นที่ว่างในดิสก์ บันทึก / ไดเรกทอรีใดบ้างที่ควรทำความสะอาด
ฉันต้องการเพิ่มพื้นที่ว่างในเครื่อง Linux ของฉัน ฉันเจาะลึกการใช้พื้นที่และพบว่าไดเรกทอรีต่อไปนี้มีขนาดใหญ่ /u01/app/11.2.0/grid/cv/log /u01/app/11.2.0/grid/log/diag/tnslsnr/r1n1/listener_scan2/alert (Contains xml files) /u01/app/11.2.0/grid/rdbms/audit(Contains .aud files) /home/oracle/oradiag_oracle/diag/clients/user_oracle/host_XXXXXXXXXX/alert(Contains xml files) /u01/app/oracle/diag/rdbms/crimesys/crimesys1/alert (Contains xml files) ฉันสามารถลบเนื้อหาจากไดเรกทอรีเหล่านี้ได้หรือไม่ หมายเหตุ: ฉันหมายถึงเนื้อหาไม่ใช่ไดเรกทอรี

4
SQL Server 2012 เข้ากันได้แบบย้อนหลังสำหรับการสำรองข้อมูลกับ 2008
ฉันมีลูกค้าจำนวนมากที่มี SQL Server 2008 และนั่นคือสิ่งที่ฉันมีที่นี่บนเซิร์ฟเวอร์ของฉันด้วย ฉันใช้ไฟล์สำรองเพื่อส่งฐานข้อมูลไปมาระหว่างลูกค้าและที่สำนักงานของฉัน ฉันได้อ่านแล้วว่าเมื่อคุณสร้างการสำรองข้อมูลจาก SQL Server 2012 จะไม่มีวิธีการคืนค่าไปยังอินสแตนซ์ปี 2008 ฉันสันนิษฐานว่าระดับความเข้ากันได้จะดูแลปัญหานี้ แต่ก็ไม่เป็นเช่นนั้น ดังนั้นฉันกำลังสูญเสียว่าจะอัพเกรดอย่างไร นอกเหนือจากการอัปเกรดลูกค้าของฉันทั้งหมดในครั้งเดียวซึ่งเป็นไปไม่ได้ฉันไม่คิดว่าจะทำเช่นนี้ได้ ฉันต้องการส่งฐานข้อมูลไปยังลูกค้ารวมทั้งรับฐานข้อมูลจากลูกค้า นี่เป็นการอัปเกรดเวอร์ชันแรกของฉันบน SQL Server ดังนั้นฉันใหม่กับปัญหานี้ มีความคิดเห็นเกี่ยวกับวิธีการดำเนินการอย่างไร
14 sql-server 

2
เหตุใดแบบสอบถามจึงทำงานช้าลงในกระบวนงานที่เก็บไว้กว่าในหน้าต่างแบบสอบถาม
ฉันมีแบบสอบถามที่ซับซ้อนซึ่งทำงานใน 2 วินาทีในหน้าต่างแบบสอบถาม แต่ประมาณ 5 นาทีเป็นกระบวนงานที่เก็บไว้ เหตุใดจึงใช้เวลานานกว่าจึงจะเรียกใช้เป็นกระบวนงานที่เก็บไว้ได้ นี่คือสิ่งที่แบบสอบถามของฉันดูเหมือน ใช้ชุดระเบียนเฉพาะ (ระบุโดย@idและ@createdDate) และกรอบเวลาที่เฉพาะเจาะจง (1 ปีเริ่มต้นจาก@startDate) และส่งกลับรายการสรุปของตัวอักษรที่ส่งและการชำระเงินโดยประมาณที่ได้รับเป็นผลมาจากตัวอักษรเหล่านั้น CREATE PROCEDURE MyStoredProcedure @id int, @createdDate varchar(20), @startDate varchar(20) AS SET NOCOUNT ON -- Get the number of records * .7 -- Only want to return records containing letters that were sent on 70% or more …

3
ฉันจะกำหนดค่าอาร์เรย์ RAID ของไดรฟ์ SSD บน SQL Server ได้อย่างไร
ฉันกำลังสร้าง SQL Server ที่มี RAM 48 GB, 1 CPU, & 8 SATA III (6GB / s) ไดรฟ์ SSD (128 GB Crucial m4) และคอนโทรลเลอร์ LSI MegaRAID (SAS 9265-8i) ฉันคาดว่างานโหลดทั่วไปส่วนใหญ่จะอ่าน จะมีบางช่วงของกิจกรรมการเขียนที่หนักกว่า (ซิงค์ข้อมูลรายชั่วโมงกับผู้ให้บริการข้อมูลบุคคลที่สาม - การสำรองข้อมูลทุกคืน) แต่ฉันสงสัยว่าอัตราส่วนการอ่าน / เขียนทั่วไปประมาณ 90% อ่าน / 10% เขียน ตัวเลือกที่ 1: ไดรฟ์แบบลอจิคัล C: - RAID 1 (ไดรฟ์ทางกายภาพ 2 ตัว) …

2
การจัดเก็บข้อมูลจำนวนมากจากอาร์เรย์เซ็นเซอร์
ฉันได้รับมอบหมายให้ใช้โซลูชัน (แอพและฐานข้อมูล) เพื่อเก็บตัวอย่างข้อมูลจากอาร์เรย์เซ็นเซอร์ขนาดใหญ่ อาร์เรย์ในปัจจุบันประกอบด้วยเซ็นเซอร์ประมาณ 20,000 ตัว แต่ในไม่ช้าจะมีการเติบโตสูงถึง 100,000 เซ็นเซอร์ เซ็นเซอร์แต่ละตัวจะส่งตัวอย่างข้อมูลทุก ๆ 10 วินาทีและแต่ละตัวอย่างมีขนาด 28 ไบต์ การทำผลรวมจึงนำไปสู่: 8640 ตัวอย่างต่อเซ็นเซอร์ต่อวัน ข้อมูล 242kB ต่อเซ็นเซอร์ต่อวัน 864 ล้านตัวอย่างต่อวัน ตอนนี้ฉันสงสัยว่าวิธีที่ดีที่สุดในการจัดเก็บ / ดึงข้อมูลคืออะไร? ฉัน "เข้าร่วม" โครงการนี้หลังจากที่ซอฟต์แวร์ได้ถูกระบุไว้แล้วดังนั้นจึงต้องดำเนินการบนแพลตฟอร์ม Windows โดยใช้ SQL Server โซลูชันปัจจุบันในหัวของฉันคือการสร้างฐานข้อมูลที่มีสองตารางเพื่อเก็บตัวอย่างข้อมูล ตัวแรกทำหน้าที่จัดเรียงของดัชนีเป็นวินาทีที่เก็บตัวอย่างที่เรียงไว้ในเขตข้อมูลไบนารีในแต่ละวันต่อเซ็นเซอร์พื้นฐาน: Table 1: RecordID - BigInt - Identity SensorID - BigInt - Primary Key Date - …

3
บุคคลที่สาม dll ใน SQL Server CLR
ฉันต้องใช้ DLL บุคคลที่สามในรหัสทริกเกอร์ c # ใน SQL Server CLR แต่เมื่อฉันพยายามที่จะเพิ่มการอ้างอิงก็แค่แสดงบาง DLLs จาก SQL Server ฉันจะเพิ่มdll ของ บริษัท อื่นลงใน SQL Server ได้อย่างไร
14 sql-server  c#  sql-clr 

1
วิธีตั้งค่ากระบวนการพัฒนาฐานข้อมูลท้องถิ่นสำหรับทีมงานเว็บขนาดเล็ก
พื้นหลัง ฉันกำลังทำงานเพื่อสร้างกระบวนการพัฒนาใหม่สำหรับทีมงานเว็บขนาดเล็กที่มีโปรแกรมเมอร์ประมาณ 4 คนและนักออกแบบ 4 คนที่มีศักยภาพชัดเจนในการเติบโตทีมในอนาคต ผลิตภัณฑ์ของเราเป็นแอพพลิเคชั่นกลางที่สนับสนุนเว็บไซต์ลูกค้าที่เราออกแบบและโฮสต์ ก่อนหน้านี้เราทำงานผ่าน FTP บนเซิร์ฟเวอร์ dev ด้วยฐานข้อมูล dev เดียว มัน "ทำงาน" *ในขณะที่ แต่เราจะย้ายเข้าไปอยู่ในทิศทางใหม่ดังนั้นจึงเป็นเวลาที่จะครบกำหนดกระบวนการของเรา เราใช้ Percona Server 5.5 แต่นี่ควรเป็นฐานข้อมูลที่ไม่เชื่อเรื่องพระเจ้าโดยมีแนวคิดว่าจะรักษาต้นทุนให้ต่ำ เป้าหมาย : ฉันกำลังมองหาการสร้างกระบวนการการรวมอย่างต่อเนื่อง (CI) สำหรับการพัฒนาฐานข้อมูลโดยคำนึงถึงสิ่งต่อไปนี้: นักพัฒนามีสำเนาของข้อมูลภายในเพื่อเรียกใช้รหัสการพัฒนาเทียบกับ โครงสร้างฐานข้อมูลย้อนกลับไปยังชุดการแก้ไขก่อนหน้า สามารถแยกการเปลี่ยนแปลงคุณสมบัติใหม่กับการเปลี่ยนแปลงแก้ไขการออกแบบสคีมา สามารถแก้ไขโครงสร้างฐานข้อมูลในเครื่องเพื่อทำการทดสอบ แนวคิดเริ่มต้น ผมได้ร่างออกกระบวนการด้านล่างใช้ SVN และ LiquiBase #4แม้ว่ามันจะลบอย่างสมบูรณ์ สร้างสาขา 'การพัฒนา' จากลำตัว เซิร์ฟเวอร์ db 'กลางพัฒนา' จะปิดสาขา 'พัฒนา' นักพัฒนาท้องถิ่นถูกตั้งค่าให้เป็นทาสของสาขาการพัฒนา (แสดง#1ไว้ด้านบน) liquibase การแก้ไขมีความมุ่งมั่นอย่างสม่ำเสมอเพื่อให้สาขาการพัฒนาที่ดำเนินการหลังกระทำเบ็ดเพื่อปรับปรุงการพัฒนาฐานข้อมูลกลาง …

5
PL / SQL: วิธีที่ดีที่สุดในการนับองค์ประกอบในอาร์เรย์?
รับสิ่งนี้: DECLARE TYPE T_ARRAY IS TABLE OF VARCHAR2(2000) INDEX BY BINARY_INTEGER; MY_ARRAY T_ARRAY; V_COUNT INTEGER; ฉันอยากจะทำ: BEGIN -- ... some code filling the MY_ARRAY array -- obviously COUNT_ELEMENTS() does not exists, this is what I'm looking for :-) V_COUNT := COUNT_ELEMENTS(MY_ARRAY); DBMS_OUTPUT.PUT_LINE('My array containts ' || V_COUNT || ' elements.'); …
14 oracle  plsql 

6
แยกตารางใน MySQL การปฏิบัติที่ดี?
ฉันเริ่มทำงานกับโครงการที่มีอยู่และผู้พัฒนาคนก่อนหน้าได้แบ่งตารางออกเป็น 10 ตารางแยกกันด้วยสคีมาที่เหมือนกัน แต่มีข้อมูลต่างกัน ตารางมีลักษณะดังนี้: [tableName_0] [tableName_1] [tableName_2] [tableName_3] [tableName_4] [tableName_5] [tableName_6] [tableName_7] [tableName_8] [tableName_9] คีย์หลักคือidฟิลด์จำนวนเต็ม แอปพลิเคชันใช้อัลกอริทึมแฮช ( idmod 10) เพื่อให้ทราบว่าตารางใดที่จะเข้าถึงเมื่อทำการค้นหา ตัวอย่างid= 10 [tableName_0]จะส่งผลให้ เมื่อรวมกันแล้วตารางอาจมี 100,000 แถวและอัตราการเติบโตค่อนข้างต่ำ ดังนั้นคำถามของฉันคือว่านี่เป็นทางออกที่ทำงานได้หรือไม่แม้ว่ามันจะเป็นแนวปฏิบัติที่ดีในทุกสถานการณ์ ทฤษฎีของฉันคือการผลักดันให้พวกเขารวมกันเพราะมันจะทำให้สิ่งต่าง ๆ ง่ายขึ้นเท่าที่UNIONs ฯลฯ ไป ข้อเสียเปรียบหลักคือการเปลี่ยนรหัสแอปพลิเคชันทั้งหมดและไม่ว่าจะคุ้มค่าในระยะยาวหรือไม่


6
ฟอร์แมตแบบสอบถาม SQL [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับผู้ดูแลฐานข้อมูล Exchange Exchange ปิดให้บริการใน5 ปีที่ผ่านมา มี SQL Query Formatting programs / plugins / extensions ใด ๆ หรือไม่? ฉันใช้ PostgreSQL และ MySQL แต่ยินดีต้อนรับฐานข้อมูลอื่น ๆ เช่นกัน ฉันสามารถใช้ VM เพื่อทดสอบด้วย แต่ต้องการโซลูชันที่ใช้ Linux (Ubuntu) ฉันเห็นเวอร์ชันออนไลน์แล้วแต่ไม่มีอะไรติดตั้งได้ Eclipse Based IDE ก็เป็นข้อดีเช่นกัน ตัวอย่าง: select f1, f2, fname, lName from tblName where f1 = …
14 postgresql 

1
PostgreSQL failover และการจำลองแบบ
ฉันประเมิน PostgreSQL 9.1 และมีคำถามสองสามข้อที่เกี่ยวข้องกับรายละเอียดการเฟลโอเวอร์และการจำลองแบบ ฉันมีสถานการณ์การทดสอบน้อย สิ่งแรกคือเซิร์ฟเวอร์หลักและทาสไม่กี่คน ในกรณีที่อาจารย์ขัดข้องฉันต้องการให้ทาสคนหนึ่งกลายเป็นนาย หลังจากที่ Master กลับสู่สภาวะปกติแล้วควรซิงค์กับเซิร์ฟเวอร์อื่นในคลัสเตอร์ (ใช้การเปลี่ยนแปลงทั้งหมดที่ทำในขณะที่มันหยุดทำงาน) และเรียกคืนบทบาท Master หรือกลายเป็น Slave ปัญหาที่ฉันเห็นด้วย PostgreSQL และสถานการณ์ปัจจุบันมีดังต่อไปนี้ 1) ฉันไม่เห็นเครื่องมือในตัวสำหรับตรวจจับการหยุดทำงานของเซิร์ฟเวอร์หลัก ฉันอ่านว่า pgpool สามารถจัดการกับมันและสร้างไฟล์ทริกเกอร์ได้ฉันยังอ่านอีกว่าผู้คนใช้เครื่องมือ heartbeat Linux หรือเครื่องมือที่คล้ายกันสำหรับเรื่องนี้ โอเคฉันสามารถตรวจจับความล้มเหลวและกำหนดมาสเตอร์ใหม่ในคลัสเตอร์ได้ ทาสคนอื่นจะเข้าใจหรือไม่ว่ามีเจ้านายคนใหม่และพวกเขาควรจะสำรองไว้ตอนนี้หรือไม่? 2) ฉันไม่เข้าใจขั้นตอนการย้อนกลับ การกำหนดค่าโฮสต์ Master และ Slave นั้นแตกต่างกัน ดังนั้นฉันจะมีผู้เชี่ยวชาญสองคนหลังจากที่ล้มเหลวของอาจารย์ล้มเหลวหรือไม่ เซิร์ฟเวอร์จะซิงค์กันอย่างไร ฉันเห็นวิธีแก้ปัญหาด้วยตนเองเช่น "ถ่ายโอนโฟลเดอร์ข้อมูลไปยังเซิร์ฟเวอร์แล้วรีสตาร์ท" ดังนั้นทางออกหรือแนวปฏิบัติที่ดีที่สุดหรือหลักสำคัญอย่างน้อยที่นี่คืออะไร 3) ฉันควรจัดการเซิร์ฟเวอร์ขัดข้องทางฝั่งไคลเอ็นต์ได้อย่างไร เมื่อฉันสร้างการเชื่อมต่อฉันระบุ IP ของเซิร์ฟเวอร์อย่างชัดเจน ฉันควรพัฒนา ConnectionManager บางประเภทซึ่งจะรู้จักโครงสร้าง Master-Slave ของฉันส่งคำขอไปยัง …

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