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

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

2
การกู้คืนพื้นที่เชิงตรรกะจาก tablespace
ฉันมีพื้นที่ตารางที่เรียกว่า DATA และเป็นการตั้งค่าโดยอัตโนมัติขยายเป็นเท็จ tablespace นี้มีสองดาต้าไทล์และตั้งค่าดังนั้นจึงใช้พื้นที่ฟิสิคัล 350 GB สัปดาห์ที่ผ่านมาฉันได้สอบถาม user_tablespaces และ dba_data_files และสังเกตว่ามันมีพื้นที่โลจิคัลว่าง 20% ฉันดำเนินการตามขั้นตอนด้วยการล้างข้อมูลและลบระเบียนจำนวนมากจากตารางใน tablespace นี้ เราคาดว่าจะเห็นพื้นที่ว่างเพิ่มขึ้นอย่างมาก น่าเสียดายที่เมื่อฉันสอบถามความคิดเห็นฉันสังเกตเห็นว่ามีพื้นที่ว่างตอนนี้ 20.5% อาจเป็นเพราะการกระจายตัวของข้อมูลหรือไม่ เราสามารถ "จัดเรียงข้อมูล" พื้นที่ตารางอย่างใดและกู้คืนพื้นที่ที่สูญหายหรือไม่ หรือเราจำเป็นต้องสร้าง tablespace ตั้งแต่เริ่มต้นหรือไม่

2
กู้คืนไฟล์ bak ไปยังไฟล์ฐานข้อมูล mdf และ ldf ที่เล็กกว่า
ฉันมีฐานข้อมูลดั้งเดิมที่ขาดการออกแบบที่น่ากลัวฉันจะไม่เข้าไปที่นี่ แต่ไฟล์บนเซิร์ฟเวอร์นั้นมีขนาดใหญ่มาก ฉันมี: MyDatabase.mdf: 24.8GB MyDatabase.ldf: 114.6GB ฐานข้อมูลนี้ถูกสำรองข้อมูลเป็นไฟล์. bak ทุกคืนและส่งไปยังเซิร์ฟเวอร์รายงานของเราซึ่งมีการกู้คืน ไฟล์. bak มีขนาดเล็กกว่ามากเพียง 1.8GB อย่างไรก็ตามเมื่อฉันพยายามกู้คืนบนเซิร์ฟเวอร์การรายงานมันล้มเหลวเนื่องจากมีพื้นที่ไม่เพียงพอ เซิร์ฟเวอร์มีพื้นที่ว่างประมาณ 100GB และพยายามทำลายไฟล์ทั้งหมดที่ใช้งานบนเซิร์ฟเวอร์ดั้งเดิม 139.4GB เว้นแต่ว่าฉันรู้ว่าการบีบอัดผิดอย่างน่ากลัวฉันค่อนข้างมั่นใจว่าไฟล์ 1.8GB นั้นไม่ได้เพิ่มขึ้น 7400% คำถามของฉัน: มีวิธีใดที่จะบอกให้ SQL Server กู้คืนไฟล์ข้อมูลสำรองนี้โดยไม่ต้องจองพื้นที่ล่วงหน้า ฉันไม่สนใจเกี่ยวกับบันทึกใด ๆ ฉันแค่ต้องการข้อมูลเพื่ออยู่ที่นั่น ฉันเข้าใจฐานข้อมูลจากมุมมองการพัฒนาและสคีมา แต่ฉันไม่เคยใช้ DBA ประเภทใดเลย นี่คือบน SQL Server 2008 R2 ขอบคุณสำหรับความช่วยเหลือหรือคำแนะนำ

2
ปัจจัยอะไรบ้างที่บ่งบอกถึงเวลาที่ต้องใช้การจำลองแบบ SQL Server
ฉันพยายามสร้างสมดุลระหว่างฐานข้อมูลที่มีประสิทธิภาพสูงและการบำรุงรักษาง่าย เรากำลังพิจารณาที่จะใช้การจำลองแบบเพื่อปรับปรุงประสิทธิภาพโดยการจำลองรายงาน SSRS ของเราไปยังฐานข้อมูลแยกทางกายภาพจากฐานข้อมูลธุรกรรมของเรา อย่างไรก็ตามการเปิดใช้งานการจำลองแบบมีข้อเสียจำนวนหนึ่งจากมุมมองของนักพัฒนา: มันทำให้การเปลี่ยนแปลงสคีมายากขึ้น มันรบกวนกับเซิร์ฟเวอร์การรวม / สร้างอัตโนมัติของเรา ดูเหมือนว่าจะทำให้มันยากที่จะใช้การควบคุมแหล่ง SQL คำถามของฉันคือ : เมื่อคุณรู้ว่าถึงเวลาที่จะไปกับการจำลองแบบในแง่ของข้อบกพร่องเหล่านี้? คุณจะตัดสินใจได้อย่างไรว่าความซับซ้อนที่เพิ่มเข้ามานั้นเหมาะสมกับผลกำไรหรือไม่? เราเคยใช้มาก่อนการตั้งค่าจึงไม่เป็นปัญหา นี่คือเพิ่มเติมเกี่ยวกับการตัดสินใจหรือไม่เปิดใช้งาน ฉันกำลังมองหาตัวชี้วัดประสิทธิภาพการทำงานของวัตถุที่คนอื่น ๆ สังเกตด้วยการจำลองแบบ แน่นอนว่าสิ่งที่ดีที่สุดคือการทดสอบโหลดแบบจำลองบนเซิร์ฟเวอร์ของเราและคิดออกเอง แต่ฉันหวังว่าจะมีแนวทางทั่วไปอยู่บ้าง

3
ฉันจะเก็บอนุกรมเวลาเป็น mongodb ได้อย่างไร
ฉันต้องการสร้างฐานข้อมูลของอนุกรมเวลาและทำงานต่อไปนี้: สร้างชุดเวลาใหม่ อัปเดตอนุกรมเวลาที่มีอยู่ สอบถามชุดข้อมูลหนึ่งหรือหลายครั้งในคราวเดียว (ตัวอย่างเช่นชุดเวลาทั้งหมดสำหรับวันที่เดียวกัน ฯลฯ ... ) Mongo ปรับให้เข้ากับสิ่งนั้นหรือไม่และถ้าใช่ฉันจะจัดโครงสร้างฐานข้อมูลได้อย่างไร (เซเรียครั้งเดียว = หนึ่งเอกสารหรือหนึ่งเอกสาร = หนึ่งรายการของซีรีย์เวลาและเอกสารเหล่านี้ทั้งหมดรวบรวมชุดซึ่งเป็นอนุกรมเวลาทั้งหมดหรือไม่) ฉันหลงทางไปนิดหน่อยและฉันพบว่ามันยากที่จะหาข้อมูลใด ๆ ซึ่งโดยปกติแล้ว Mongo จะมีความยืดหยุ่นสูงดังนั้นผู้ใช้จึงมีทางเลือกในโครงสร้างพื้นฐาน การเชื่อมโยงไปยังบทช่วยสอนที่อธิบายวิธีการจัดการอนุกรมเวลาใน Mongo โดยเฉพาะนั้นยินดีต้อนรับอย่างมาก ขอขอบคุณ!
11 mongodb 

5
เต็มรูปแบบเข้าร่วมใน MS Access
ฉันมีรายชื่อพนักงานสองคน: List A: StaffID Supervisor ==================== 0001234 NULL 0001235 0001234 0001237 0001234 0001239 0001237 และ List B: StaffID Supervisor ==================== 0001234 NULL 0001235 0001234 0001238 0001235 0001239 0001235 และฉันต้องการผลลัพธ์ต่อไปนี้: StaffID SupervisorA SupervisorB =================================== 0001234 NULL NULL 0001235 0001234 0001234 0001237 0001234 NULL 0001238 NULL 0001235 0001239 0001237 0001235 โปรดสังเกตว่ารหัสพนักงานจากรายการ A …
11 query  join  ms-access 


3
sequence.nextval เป็นอย่างไรใน Oracle
ฉันมีลำดับ Oracle ที่กำหนดดังนี้: CREATE SEQUENCE "DALLAS"."X_SEQ" MINVALUE 0 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 0 NOCACHE NOORDER NOCYCLE ; มันถูกใช้ในขั้นตอนการจัดเก็บเพื่อแทรกบันทึก: PROCEDURE Insert_Record (p_name IN VARCHAR2, p_userid IN INTEGER, cur_out OUT TYPES_PKG.RefCursor) IS v_id NUMBER := 0; BEGIN -- Get id value from sequence SELECT x_seq.nextval INTO v_id FROM dual; …
11 oracle  sequence 

2
บทลงโทษในการใช้คอลัมน์ครอบครัวหรือพื้นที่สำคัญหลายแห่งในคาสซานดราคืออะไร
ฉันอยู่ระหว่างการประเมินการออกแบบที่ดีที่สุดสำหรับการติดตั้ง Cassandra ของเรา มีข้อมูลไม่มากออกมีบนอินเทอร์เน็ตเกี่ยวกับการใช้สองระดับแรกของการเข้าถึงที่คาสซานดรา provides- keyspacesและครอบครัวคอลัมน์ ฉันสงสัยว่าจะได้รับการลงโทษหรือไม่และถ้าคุณเลือกที่จะสร้างคีย์สเปซหรือคอลัมน์ครอบครัวจำนวนมาก (> 10.000) โพสต์บล็อกเก่าบางแห่งแนะนำว่า Cassandra สงวนหน่วยความจำสำหรับแต่ละคอลัมน์ครอบครัว บทความนี้เกี่ยวกับรุ่น 0.6 และรุ่นปัจจุบันคือ 1.0 ยังคงเป็นกรณีนี้และเป็นปัญหาจริงหรือไม่? อะไรคือบทลงโทษของการใช้คอลัมน์ครอบครัวหลายพันคอลัมน์หรือพื้นที่สำคัญในคาสซานดรา

1
การสร้างใบแจ้งหนี้และการติดตาม
ทุก 2 สัปดาห์ระบบจะสร้างใบแจ้งหนี้ให้กับ บริษัท บริษัท จะได้รับใบแจ้งหนี้ในวันที่ 1 และ 16 ของทุกเดือน (มันจะทำงานผ่าน Cron Job ทุก 2 สัปดาห์มันสแกนผ่านตารางคำสั่งซื้อแล้วเพิ่มลงในตาราง 'ใบแจ้งหนี้' มีทางเลือกอื่นหรือไม่) มีรายการคำสั่งซื้อของลูกค้าในordersตารางและยังระบุ บริษัท ที่เป็นของ ( orders.company_id) invoiceตารางการคำนวณค่าใช้จ่ายทั้งหมดของการสั่งซื้อจากordersตาราง ฉันกำลังพยายามหาวิธีการออกแบบการติดตามใบแจ้งหนี้ที่สมเหตุสมผล บริษัท บางครั้งจะต้องส่งค่าธรรมเนียมหรือบางครั้งฉันส่งค่าธรรมเนียม ( invoice.amount) ฉันต้องการติดตามใบแจ้งหนี้ด้วยสิ่งต่อไปนี้: เมื่อ บริษัท ส่งจำนวนเงินให้ฉัน ฉันส่งจำนวนเงินให้ บริษัท เมื่อใด ได้รับเงินจำนวนเท่าใดจาก บริษัท ฉันส่งไปยัง บริษัท เท่าไร ฉันได้รับเงินเต็มจำนวนหรือไม่ (ถ้าไม่ฉันต้องอัปเดตสิ่งใดใน Db) สถานะใบแจ้งหนี้ (ส่งใบแจ้งหนี้, ยกเลิก, จำนวนเงินที่ได้รับ, จำนวนเงินที่ส่ง) นี่คือการออกแบบฐานข้อมูลฉันมาด้วย: …

2
ฉันจะค้นหาวัตถุที่ไม่มีอยู่ในตารางวัตถุได้อย่างไร
cot_ntn_pi_vฉันมีวัตถุที่เรียกว่า ฉันบอกว่านี่เป็นคำพ้อง จะไม่ปรากฏในตาราง all_synonyms ดูเหมือนว่าจะเป็นมุมมองหรือตาราง แต่ฉันไม่พบมันในตารางวัตถุทั้งหมด ฉันสามารถเลือกจากมันได้ แต่ฉันไม่สามารถวางได้เพราะมัน 'ไม่มีอยู่' และฉันไม่สามารถสร้างตารางใหม่ที่มีชื่อเดียวกันกับชื่อ 'วัตถุอื่นใช้แล้ว' ฉันจะโมโหหรือทำอะไรโง่ ๆ จริง ๆ ?

3
mysql ปรับค่าการเชื่อมต่อสูงสุดโดยอัตโนมัติ
ฉันได้ตั้งค่าการเชื่อมต่อสูงสุดเป็นประมาณ 2000 ในไฟล์ my.cnf max_connections=2048 ฉันอัพเกรดเป็น 5.5.20 และตอนนี้ฉันเห็นบรรทัดต่อไปนี้ในบันทึกข้อผิดพลาด 120201 19:40:24 [Warning] Changed limits: max_open_files: 1024 max_connections: 214 table_cache: 400 ทำไม mysql เปลี่ยนค่าการเชื่อมต่อสูงสุดเป็น 214 # mysqladmin variables | grep max_connections | max_connections | 214 ไฟล์ที่นิ่มและแข็งถูก จำกัด โดยระบบปฏิบัติการคือ 1024 # ulimit -Sa | grep "open files" open files (-n) 1024 # ulimit …
11 mysql 

2
ย้ายโฟลเดอร์ข้อมูลและไดรฟ์ mysql centos
ฉันต้องการย้ายข้อมูลไปยังโฟลเดอร์อื่นและขับบนเซิร์ฟเวอร์ cent os db ของฉัน ฉันเพิ่มฮาร์ดไดรฟ์ใหม่ (เนื่องจากเรามีพื้นที่เหลือน้อย) ฉันมีฮาร์ดไดรฟ์ 1TB และฉันมี 2TB ใหม่ฉันต้องการวางข้อมูลบนเซิร์ฟเวอร์เดียวกัน (เซิร์ฟเวอร์เฉพาะที่โฮสต์ในดาต้าเซ็นเตอร์) ฉันต้องการที่จะรู้ว่าอะไรคือวิธีที่ง่ายในการโยกย้ายข้อมูลโดยไม่สูญเสียข้อมูลใด ๆ ขณะนี้ฉันมีข้อมูลอยู่ใน: /var/lib/mysql/บนระบบปฏิบัติการmysql version is 5.1
11 mysql 

2
sp_executesql กับประเภทตารางที่ผู้ใช้กำหนดไม่ทำงานอย่างถูกต้อง
ปัญหา : มีปัญหาที่ทราบเกี่ยวกับประเภทตารางที่ผู้ใช้กำหนดเป็นพารามิเตอร์สำหรับsp_executesqlหรือไม่ คำตอบ - ไม่ฉันเป็นคนงี่เง่า ตั้งค่าสคริปต์ สคริปต์นี้สร้างหนึ่งในแต่ละตารางขั้นตอนและประเภทตารางที่ผู้ใช้กำหนด (จำกัด SQL Server 2008+ เท่านั้น) จุดประสงค์ของกองคือเพื่อให้การตรวจสอบว่าใช่ข้อมูลทำให้เป็นขั้นตอน ไม่มีข้อ จำกัด ไม่มีสิ่งใดที่จะป้องกันไม่ให้มีการแทรกข้อมูล ขั้นตอนใช้เป็นพารามิเตอร์ที่ผู้ใช้กำหนดประเภทตาราง proc ทั้งหมดจะถูกแทรกลงในตาราง ประเภทตารางที่ผู้ใช้กำหนดนั้นเรียบง่ายเช่นกันเพียงแค่คอลัมน์เดียว ฉันเรียกใช้สิ่งต่อไปนี้11.0.1750.32 (X64) และ10.0.4064.0 (X64)ใช่ฉันรู้ว่ากล่องนั้นสามารถแก้ไขได้ฉันไม่ได้ควบคุมสิ่งนั้น -- this table record that something happened CREATE TABLE dbo.UDTT_holder ( ServerName varchar(200) , insert_time datetime default(current_timestamp) ) GO -- user defined table type transport …

2
PostgreSQL สำหรับธุรกรรมปริมาณมากและคลังข้อมูล
ค่อนข้างใหม่สำหรับ PostgreSQL ฉันไม่เคยใช้งานขนาดใหญ่มาก่อน แต่ฉันมีประสบการณ์ที่ดีในโซลูชันระดับองค์กรและฉันต้องการลองใช้สิ่งที่ฉันเรียนรู้โดยใช้ PostgreSQL ฉันมีเว็บไซต์ที่มีขนาดใหญ่พอที่จะรองรับข้อมูลและปริมาณข้อมูลจำนวนมาก โครงสร้างพื้นฐานจะถูกสร้างโดยใช้บน amazon (AWS) โดยใช้อินสแตนซ์ของ EC2 และ EBS การออกแบบควรมีสองฐานข้อมูลฐานข้อมูลธุรกรรมหลักและคลังข้อมูลเพื่อจัดการการวิเคราะห์และการรายงาน ฐานข้อมูลธุรกรรมหลัก จะถูกใช้สำหรับเว็บไซต์สดเว็บไซต์นี้สร้างขึ้นบนหลายโหนดเพื่อขยายขนาดผู้ใช้พร้อมกัน ส่วนใหญ่เราต้องการฐานข้อมูลสำหรับกรณีนี้ที่จะรวดเร็วในการดำเนินการอ่านเราคาดว่า> ข้อมูล 100GB กับการเติบโต 30% ต่อปี ณ จุดนี้เราวางแผนที่จะใช้เซิร์ฟเวอร์ EC2 สองเครื่อง ( และเพิ่มในภายหลังตามที่เราต้องการ ) คำถามของฉันการตั้งค่าที่แนะนำสำหรับข้อกำหนดข้างต้นคืออะไร นอกจากนี้มีวิธีจัดการตารางและการแบ่งพาร์ติชันของไดรฟ์ข้อมูลหรือไม่? มีคำแนะนำสำหรับการใช้การตั้งค่า AWS หรือไม่ ฐานข้อมูลคลังข้อมูล ส่วนใหญ่จะใช้สำหรับการจับข้อมูลทั้งหมดจากฐานข้อมูลธุรกรรมหลักในมิติเวลา ดังนั้นแม้ลบบันทึกจากฐานข้อมูลหลักจะถูกจับใน DWH ดังนั้นข้อมูลจะมีขนาดใหญ่มากและการเติบโตจะยิ่งใหญ่ขึ้น นอกจากนี้เรายังจะใช้อินสแตนซ์คู่ EC2 ขึ้นไปหากต้องการ การตั้งค่าที่แนะนำในกรณีนี้คืออะไร? สิ่งนี้จะต้องใช้การเขียนที่รวดเร็วเนื่องจากการเขียนคงที่ (ETL) เราสามารถสร้าง OLAP คิวบ์ใน PostgreSQL ได้ไหม? …

3
ตัวแปรสถานะ MySQL Handler_read_rnd_next กำลังเติบโตขึ้นอย่างมาก
ในสถานะ MYSQL ค่า Handler_read_rnd_next นั้นสูงมาก ฉันทราบว่าค่านี้จะเพิ่มขึ้นเมื่อดำเนินการแบบสอบถามซึ่งไม่มีดัชนีที่เหมาะสม แต่แม้ว่าเราจะเรียกใช้สถานะการแสดงเช่น 'Handler_read_rnd_next' ค่านี้จะเพิ่มขึ้น 2 จากการตั้งค่าสถานะนี้เรากำลังตรวจสอบสถานะบางอย่าง ดังนั้นทุกครั้งสถิตินี้จึงมีความสำคัญ เราสามารถแยกการดำเนินการ 'show' เหล่านี้ออกจากการนับ 'Handler_read_rnd_next' อีกหนึ่งตัวอย่างสำหรับสิ่งนี้ มีตารางที่มี 10 แถวตารางจะถูกจัดทำดัชนีในคอลัมน์ 'data' และหากเราประมวลผลแบบสอบถามต่อไปนี้: select data from test where data = 'vwx' -> returns one row และถ้าเราตรวจสอบค่าของ 'Handler_read_rnd_next' มันจะเพิ่มขึ้น 7 ต่อไปนี้เป็นผลลัพธ์ของคำสั่งอธิบายสำหรับแบบสอบถามด้านบน: explain select data from test where data = 'vwx'; id, select_type, …

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