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

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

2
วิธีโยกย้าย SQL Server Stored Procedure โดยใช้ตารางชั่วคราวหรือตัวแปรตารางไปยัง Oracle
ผู้พัฒนา C # ได้รับการสนับสนุนโดยฝ่ายบริหารให้เขียนขั้นตอนการจัดเก็บ SQL Server มักจะสร้างขั้นตอนเช่นนี้ create table #t1 (...); insert into #t1 Select ... from table_a where ...; insert into #t1 Select ... from table_b where ...; update #t1 Set ... = ... where ... Select * from #t1; คำสั่งเดียวค่อนข้างง่ายและวิธีนี้ทำให้พวกเขาผลิตผลลัพธ์ที่ถูกต้อง บ่อยครั้งที่งานของฉันคือการโยกย้ายขั้นตอนดังกล่าวไปยัง Oracle ลองหน้าข้อเท็จจริงต่อไปนี้ สำหรับตารางชั่วคราวที่แตกต่างกันใน SQL Server นั้นมีความเป็นอิสระอย่างสมบูรณ์และสามารถมีโครงสร้างแบบเฉพาะกิจได้ ตารางทั่วโลกของ …

3
Oracle Instances หลายตัว - นี่เป็นการปฏิบัติที่ดีหรือไม่?
หนึ่งในลูกค้าของฉันได้ปรับใช้ฐานข้อมูลผลิตภัณฑ์ของเราลงในเครื่อง Solaris ซึ่งมีอินสแตนซ์ของ Oracle อยู่ 3 อินสแตนซ์ ดังนั้นตอนนี้มี Oracle 4 อินสแตนซ์ที่ทำงานบนเครื่องเดียวกัน และตอนนี้เรากำลังประสบปัญหาประสิทธิภาพ ฉันไม่สามารถเข้าถึงอินสแตนซ์อื่นหรือเครื่องและเครื่องมือทั้งหมดที่ฉันมีคือ alert.log, AWR และ ADDM ฉันรู้ว่ามีบางอย่างเกี่ยวข้องกับหลายกรณี แต่ฉันไม่สามารถพิสูจน์ได้ ดังนั้นคำถามของฉันคือคุณเคยประสบสถานการณ์คล้ายกันหรือไม่? ฉันจะจัดการกับมันได้อย่างไร ฉันจะระบุสาเหตุของปัญหาด้านประสิทธิภาพที่เกี่ยวข้องกับหลายอินสแตนซ์ได้อย่างไร

4
วิธีควบคุมเวอร์ชันของ PostgreSQL schema ด้วยความคิดเห็น?
ฉันควบคุมเวอร์ชันส่วนใหญ่ของฉันทำงานกับGit : รหัสเอกสารการกำหนดค่าระบบ ฉันสามารถทำเช่นนั้นได้เพราะงานที่มีค่าทั้งหมดของฉันจะถูกเก็บไว้เป็นไฟล์ข้อความ ฉันยังได้เขียนและจัดการกับ SQL schema จำนวนมากสำหรับฐานข้อมูล Postgres ของเรา สคีมารวมถึงมุมมอง, ฟังก์ชั่น SQL และเราจะเขียนฟังก์ชั่น Postgres ในภาษาโปรแกรมR (ผ่านPL / R ) ฉันพยายามคัดลอกและวางโครงร่างของชิ้นที่ฉันและผู้ทำงานร่วมกันเขียน แต่ฉันลืมที่จะทำเช่นนั้น การคัดลอกและการกระทำที่ผ่านมาซ้ำซ้อนและเกิดข้อผิดพลาดได้ง่าย วิธีการ pg_dump / pg_restore จะไม่ทำงานเพราะมันสูญเสียความคิดเห็น โดยหลักการแล้วฉันต้องการมีวิธีแยกสคีมาปัจจุบันของฉันลงในไฟล์หรือไฟล์และเก็บความคิดเห็นไว้เพื่อให้ฉันสามารถควบคุมเวอร์ชันได้ แนวปฏิบัติที่เหมาะสมที่สุดสำหรับสกีมาการควบคุมเวอร์ชันพร้อมความคิดเห็นคืออะไร

4
วิธีการออกแบบตารางฐานข้อมูลความสัมพันธ์เพื่อเก็บความสัมพันธ์มิตรภาพ?
ฉันต้องการออกแบบตารางเพื่อจัดเก็บความสัมพันธ์มิตรภาพในโครงการเว็บของฉัน ควรตอบสนองอย่างน้อย 4 เงื่อนไขต่อไปนี้: ผู้ที่ส่งคำขอเพิ่มเพื่อนเช่น (ถ้า A ถึง B คอลัมน์นี้จะเป็น A) ผู้ที่ได้รับคำขอเพิ่มเพื่อนเช่น (ถ้า A ถึง B คอลัมน์นี้จะเป็น B) สถานะปัจจุบันเช่น (0 หมายถึงถูกปฏิเสธในขณะที่ 1 หมายถึงได้รับการยอมรับหรือ 2 หมายถึงยังไม่ได้ประมวลผล ความสัมพันธ์เพื่อนของเราคือทวิภาคี หากคุณประสบกับข้อเสนอแนะใด ๆ ยินดี การออกแบบปัจจุบันของฉัน (ฉันคิดว่าไม่ดีในตอนนี้) เป็นเช่นนี้ คือคอลัมน์ frienshipId fromUserId toUserId status requestTime

4
จะปรับปรุงประสิทธิภาพของ InnoDB DELETE ได้อย่างไร
ดังนั้นฉันมีตารางการตรวจสอบนี้ (ติดตามการดำเนินการในตารางใด ๆ ในฐานข้อมูลของฉัน): CREATE TABLE `track_table` ( `id` int(16) unsigned NOT NULL, `userID` smallint(16) unsigned NOT NULL, `tableName` varchar(255) NOT NULL DEFAULT '', `tupleID` int(16) unsigned NOT NULL, `date_insert` datetime NOT NULL, `action` char(12) NOT NULL DEFAULT '', `className` varchar(255) NOT NULL, PRIMARY KEY (`id`), KEY `userID` (`userID`), KEY …

1
ฉันจะนำเข้าเนื้อหาของฐานข้อมูล Oracle ไปยัง Visio เพื่อสร้าง Entity Relationship Diagram ได้อย่างไร
ฉันมีฐานข้อมูล Oracle และฉันต้องการสร้าง ERD ใน Visio 2007 Pro ฉันเคยดูที่คำสั่ง DBMS_METADATA.GET_DDL เพื่อสร้าง DDL ฉันรู้ว่าฉันสามารถนำเข้าฐานข้อมูล Access ลงใน Visio แต่ดูเหมือนว่า Access เข้าใจภาษา SQL ซึ่งแตกต่างจาก Oracle ดังนั้นฉันจะต้องปรับแต่งทุกคำสั่งสร้างตารางเพื่อเปลี่ยนชนิดข้อมูล มีวิธีง่ายๆในการสร้าง ERD โดยใช้ DDL ใน Visio Pro 2007 หรือไม่?
9 oracle  import  erd  ddl  visio 

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

3
มีวิธีสคริปต์ทางวัตถุทั้งหมดที่เกี่ยวข้องกับตารางที่กำหนดหรือไม่
ฉันรู้ว่าในสตูดิโอการจัดการ SQL ฉันสามารถคลิกขวาตาราง / ทริกเกอร์ / script object as...ที่สำคัญและ มีวิธีการทำโปรแกรมนี้โดยให้ชื่อวัตถุหรือไม่ ถ้าเป็นเช่นนั้นจะมีวิธีการค้นหาวัตถุทั้งหมด (คีย์หลัก, foreign foreign, triggers) ที่เชื่อมโยงกับตารางที่กำหนดและสคริปต์ทั้งหมดหรือไม่?

2
เป็นไปได้ที่จะรันคำสั่ง DBCC INDEXDEFRAG สองคำพร้อมกันโดยแต่ละคำสั่งบนตารางที่แตกต่าง
ฉันกำลังเรียกใช้สคริปต์ซึ่งดำเนินการ DBCC INDEXDEFRAG ในทุก ๆ ตารางในฐานข้อมูล SQL Server 2005 หนึ่งตารางต่อครั้ง การใช้ DBCC DBREINDEX แทนที่จะเป็น INDEXDEFRAG ไม่ใช่ตัวเลือกเนื่องจากข้อ จำกัด ด้านพื้นที่และข้อกำหนดเกี่ยวกับสถานะการออนไลน์ ฉันสังเกตว่าต้องใช้เวลานานกว่าปกติในการจัดระเบียบตาราง ตัวอย่างเช่นถ้าฉันตรวจสอบมุมมองการจัดการแบบไดนามิก "sys.dm_exec_requests" ฉันจะเห็นว่า INDEXDEFRAG ต่อไปนี้กำลังปั่นออกไปในดัชนีคลัสเตอร์ของตารางที่มี table_id ของ 829610394: DBCC INDEXDEFRAG (0, 829610394, 1) ฉันรู้ว่ามันจะใช้เวลานานก่อนที่กระบวนการจัดเรียงข้อมูลจะเสร็จสมบูรณ์ หากข้อเท็จจริงที่ว่าสคริปต์ที่กำลังทำงานอยู่ในที่สุดจะจัดเรียงข้อมูลในตารางทั้งหมดจะมีอันตรายใด ๆ ในตัวฉันที่รัน DBCC INDEXDEFRAG ด้วยตนเองในดัชนีคลัสเตอร์ของตารางอื่นในขณะที่คำสั่งปัจจุบันทำงานหรือไม่ จริง ๆ แล้วทั้งสองตารางจะถูกจัดระเบียบในเวลาเดียวกันถ้าฉันทำเช่นนี้?

2
ฉันจะหยุด / ปิดการใช้งาน PITR และล้างกลุ่ม WAL อย่างปลอดภัยได้อย่างไร
เซิร์ฟเวอร์ที่ใช้งานจริงของเรากำลังเรียกใช้ PostgreSQL v8.2.3 บน CentOS รีลีส 5.2 (สุดท้าย) เราได้ติดตั้ง PITR ในเซิร์ฟเวอร์ที่ใช้งานจริงของเรา ด้วยเหตุผลบางอย่างหลังจากตั้งค่า PITR เราไม่สามารถจัดการและดูแลรักษาได้ ในที่สุดไดรฟ์เก็บถาวร WAL ของเรา (ไดรฟ์รอง) กลายเป็นเต็ม (ใช้ 100%) และเซ็กเมนต์เก็บถาวร WAL เพิ่มเติมที่จะถูกเก็บถาวรได้สะสมใน pg_xlog / ไดเรกทอรีตัวเอง (ซึ่งมีอยู่ในไดรฟ์หลัก) รายละเอียดการตั้งค่า PITR มี 2 ​​ไดรฟ์: ไดรฟ์หลัก ( อยู่ในไดเรกทอรีpgsql / data / ) คือ 400 GB ไดรฟ์รอง (ไฟล์เก็บถาวร WAL) คือ 300 GB ไฟล์เก็บถาวร …

1
เกิดข้อผิดพลาดในการสร้าง foreign key จาก MySQL Workbench
ฉันพยายามซิงโครไนซ์การเปลี่ยนแปลงสคีมาจาก MySQL Workbench กับฐานข้อมูลของฉัน ฉันได้รับข้อผิดพลาดต่อไปนี้เมื่อพยายามสร้างคีย์ต่างประเทศ: Executing SQL script in server ERROR: Error 1005: Can't create table 'tomato.#sql-2730_1b8' (errno: 121) นี่คือคำสั่งที่พยายามเรียกใช้: ALTER TABLE `tomato`.`ing_allergy_ingredient` ADD CONSTRAINT `fk_ai_allergy` FOREIGN KEY (`allergy_id` ) REFERENCES `tomato`.`ing_allergy` (`allergy_id` ) ON DELETE NO ACTION ON UPDATE NO ACTION ความคิดเห็นใด ๆ ที่ข้อผิดพลาดนี้หมายถึงอะไร


5
PostgreSQL DBA's แบบมืออาชีพเต็มเวลาหรือไม่
สำหรับงานของฉันฉันทำงานกับโปรแกรม JavaEE กับ PostgreSQL เป็นฐานข้อมูล แม้ว่าเราจะมี sysadmin สำหรับเซิร์ฟเวอร์โปรดักชั่นของเราซึ่งจัดการเซิร์ฟเวอร์ฐานข้อมูลของเรา แต่เราไม่มี DBA แบบเต็มเวลาซึ่งทำให้ฉันสงสัยว่ามีหรือไม่ ฉันคิดว่า DBA เฉพาะแบบเต็มเวลาจะทำงานเฉพาะกับฐานข้อมูล Oracle ฉันสามารถมองเห็นบางสิ่งหรือฉันแก้ไขให้ถูกต้องหากไม่มี Postgres DBA เฉพาะหรือไม่ PS: ฉันแค่ขอให้ออกจากความอยากรู้อย่างแท้จริง PPS: ฉันต้องการติดแท็กคำถามนี้ด้วย DBA แต่ดูเหมือนจะเป็นแท็กใหม่ ใครช่วยสร้างสิ่งนี้ให้ฉันได้บ้าง


2
ใน Google App Engine รูปแบบการเข้าร่วมแบบกลุ่มต่อกลุ่มที่มีประสิทธิภาพมากที่สุดคืออะไร
การออกแบบBigTable นั้นปฏิเสธปรัชญาหลายประการของโมเดลเชิงสัมพันธ์มาตรฐานซึ่งเลือกที่จะทำให้ denormalization เป็นโฮสต์ขนาดใหญ่ของโต๊ะตัวเล็ก ๆ อย่างชัดเจน หนึ่งในพื้นที่ที่มีขนาดใหญ่กว่าซึ่งปัญหานี้อยู่ในการสร้างแบบจำลองของหลายคนเข้าร่วมจำนวนมาก วิธีหนึ่งในการสร้างโมเดลการรวมเหล่านี้คือการละเมิดรูปแบบปกติแรกและนำข้อมูลที่น่าสนใจทั้งหมดใน db.ListProperty () ขณะนี้มีความสามารถในการค้นหาได้จากแบบสอบถามฉันยังไม่ได้สำรวจความหมายของประสิทธิภาพของการค้นหารายการเทียบกับการดึงตารางอื่น เนื่องจากการเชื่อมโยงเป็นไปไม่ได้จึงเป็นไปได้ที่จะเชื่อมโยงตารางผ่าน RelationshipProperties ดังนั้นด้วยความพยายามที่เพียงพอตารางจุดตัดมาตรฐาน (ตารางที่มีคีย์หลักร่วมซึ่งอ้างอิงตารางหลักทั้งสอง) สามารถสร้างได้ มีใครสำรวจประสิทธิภาพการทำงานของการใช้งานที่หลากหลาย? -Edit- ในขณะที่รายการของคีย์ที่แนะนำในเอกสารเป็นจริงวิธีหนึ่งที่จะทำมันฉันสนใจในประสิทธิภาพและอัตราความผิดปกติของที่และการใช้งานอื่น ๆ มีประโยชน์ในการสร้างรายการคีย์ร่วมกันหรือไม่? ความพยายามที่เกี่ยวข้องกับการทำซ้ำได้รับคุ้มราคาหรือไม่ มีวิธีที่ดีกว่าที่จะทำหรือไม่

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