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

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

2
PostgreSQL: เวลาเข้าถึงตารางล่าสุด
ฉันรับผิดชอบฐานข้อมูลขนาดใหญ่ของ PostgreSQL โดยมีตารางไม่กี่โหล ฉันสงสัยว่าตารางเหล่านี้จำนวนมากจะไม่สามารถเข้าถึงได้ วิธีที่ดีที่สุดในการตรวจสอบเมื่อครั้งล่าสุดคือการเข้าถึงตารางบางอย่าง ผมคิดว่าการเพิ่มทริกเกอร์บนDELETE, INSERTและUPDATEแต่ผมหวังว่าจะมีวิธีที่มีประสิทธิภาพมากขึ้น
10 postgresql 

4
Oracle ต้องการสภาพแวดล้อมสำหรับ DBA มากกว่า SQL Server หรือไม่ [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา ฉันไม่รู้ Oracle เลย แต่ฉันได้ยิน Oracle DBA ว่าการทำงานกับ Oracle (ในฐานะ DBA) นั้น "ยากกว่า" และยากกว่าและต้องการมากกว่าการทำงานกับ SQL Server ข้อความนี้มีพื้นฐานหรือไม่?

6
การสำรอง SQL DB บ่อยขึ้น
ขณะนี้ฉันมีงานที่กำหนดเวลาไว้ซึ่งจะปิดไฟทุกคืนเวลา 2:00 น. ที่เรียก SQLCMD.exe และส่งสคริปต์. sql เพื่อเรียกใช้การสำรองข้อมูล (แสดงด้านล่าง) เราเป็น บริษัท เล็ก ๆ ที่มีความต้องการเพิ่มขึ้นเนื่องจากการเติบโตที่สำคัญในด้านธุรกิจ การสูญเสียข้อมูล 1 วัน ณ จุดนี้จะมีราคาหลายหมื่นดอลลาร์เทียบกับสองร้อยครั้งในปีที่แล้ว จนกว่าฉันจะสามารถย้ายแพลตฟอร์ม DB นี้ไปยังโซลูชันอื่นที่มีการทำมิเรอร์ข้อมูลกับความซ้ำซ้อนที่สำคัญเช่น SQL Azure สิ่งที่ดีที่สุดที่ฉันสามารถทำได้เพื่อรับการสำรองข้อมูลบ่อยขึ้นคืออะไร สคริปต์ด้านล่างนี้บังคับให้ฐานข้อมูลออฟไลน์หรือไม่ ฉันสามารถเรียกใช้สคริปต์นี้กับผู้ใช้โต้ตอบกับฐานข้อมูลได้หรือไม่ USE CompanyCRM; GO BACKUP DATABASE CompanyCRM TO DISK = 'D:\CRMBackups\CompanyCRMCRM.Bak' WITH FORMAT, MEDIANAME = 'CompanyCRM_Backup', NAME = 'Full Backup of CompanyCRM'; GO ปรับปรุง …

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

5
ตรวจสอบว่าฐานข้อมูล PostgreSQL มีการเปลี่ยนแปลงล่าสุด
ฉันกำลังดูการเปลี่ยนแปลงวิธีการสำรองข้อมูลและสงสัยว่ามีวิธีการตรวจสอบว่าฐานข้อมูลใดในคลัสเตอร์ postgreql ที่ยังไม่ได้เปลี่ยนไปเมื่อเร็ว ๆ นี้ แทนที่จะใช้ pg_dumpall ฉันต้องการใช้ pg_dump และถ่ายโอนข้อมูลเฉพาะฐานข้อมูลที่มีการเปลี่ยนแปลงนับตั้งแต่การสำรองข้อมูลครั้งล่าสุด (บางฐานข้อมูลไม่ได้รับการอัปเดตบ่อยมาก) - แนวคิดว่าถ้าไม่มีการเปลี่ยนแปลงใด ๆ การสำรองข้อมูลปัจจุบันควร ยังดีอยู่ ไม่มีใครทราบวิธีการตรวจสอบเมื่อมีการปรับปรุง / เปลี่ยนแปลงฐานข้อมูลเฉพาะล่าสุด? ขอบคุณ ... ปรับปรุง: ฉันหวังว่าจะไม่ต้องเขียนทริกเกอร์ให้ทั่วเพราะฉันไม่สามารถควบคุมการสร้างฐานข้อมูลในคลัสเตอร์ใดคลัสเตอร์หนึ่ง (ให้สร้างวัตถุ db ภายในฐานข้อมูล) ขุดเพิ่มเติมดูเหมือนว่ามีความสัมพันธ์ระหว่างเนื้อหาของไฟล์ $ PGDATA / global / pg_database (โดยเฉพาะฟิลด์ที่สอง) และชื่อไดเรกทอรีภายใต้ $ PGDATA / ฐาน ออกไปบนกิ่งฉันเดาว่าฟิลด์ที่สองของไฟล์ pg_database เป็นฐานข้อมูล oid และแต่ละฐานข้อมูลมีไดเรกทอรีย่อยของตนเองภายใต้ $ PGDATA / ฐาน (มี oid …

3
วิธีที่ดีที่สุดใช้การค้นหาเพื่อนบ้านที่ใกล้ที่สุดใน mysql
ดังนั้นในระยะสั้น ข้อมูลละติจูดและลองจิจูดควรเป็นประเภทใด ฉันควรเรียกใช้คำสั่ง SQL เพื่อรับร้านอาหารที่ใกล้ที่สุด 100 แห่งแรกหรือไม่ รายละเอียด: ฉันมีบันทึกขนาด 100k biz แต่ละรายการที่มี lattitude และลองจิจูด ฉันเห็นว่า MySQL สนับสนุนชนิดข้อมูลที่เรียกว่า point จริงๆ ฉันควรใช้สิ่งนี้แทนหรือไม่ MySQL รองรับระบบจัดเก็บ KDTree หรือไม่http://en.wikipedia.org/wiki/File:KDTree-animation.gif เป็นการดีที่สุดที่จะใช้ชนิดข้อมูลจุดแทนที่จะเป็นชนิดข้อมูลลอยตัวปกติเพื่อจัดเก็บ latitutude และลองจิจูดหรือไม่ ในที่สุดฉันต้องการค้นหาสิ่งต่าง ๆ เช่นร้านอาหาร 100 แห่งแรกที่อยู่ใกล้กับจุด 105,6 และฐานข้อมูลของฉันมีจำนวนมากและคะแนน เห็นได้ชัดว่าการคำนวณระยะทางทีละหนึ่งสำหรับทุกระเบียนและทุกจุดจะเป็น O (n) และด้วยเหตุนี้ ขอให้สังเกตว่าฉันทราบถึงวิธีแก้ปัญหาที่ง่ายกว่าที่อธิบายไว้ในApplication ระยะทางเหมือน Yelp ดึงข้อมูลระยะทางจากฐานข้อมูลอย่างมีประสิทธิภาพและจะนำไปใช้กับตัวฉันเองด้วยเช่นกันสำหรับการเริ่มต้น นั่นเป็นคำตอบที่ดี อย่างไรก็ตามฉันคิดว่ามีคำตอบสำหรับครอบตัดหนึ่งคำที่ควรมีประสิทธิภาพสูงกว่าใช่ไหม ในความเป็นจริงการจัดเก็บตำแหน่งตามละติจูดและลองจิจูดและการค้นหาสิ่งของที่ใกล้เคียงที่สุดเป็นปัญหาที่พบบ่อยมากฉันคาดว่า mysql จะมีรูปแบบการออกแบบพิเศษสำหรับสิ่งนั้น มันมีหรือไม่ ฉันจะเรียนรู้เพิ่มเติมเกี่ยวกับมันได้ที่ไหน ขอบคุณ
10 mysql 

3
ปัญหาการค้นหา: สามารถมีได้เพียงคอลัมน์เดียวเท่านั้น
ใครช่วยบอกฉันทีว่ามีอะไรผิดปกติกับนิยามตารางนี้ รุ่น mysql คือ 5.1.52-log root@localhost spoolrdb> create table spoolqueue ( queue int, idx bigint not null auto_increment, status smallint, querystring varchar(2048), contenttype varchar(255), characterencoding varchar(16), body text, primary key(queue,idx) ); ERROR 1075 (42000): Incorrect table definition; there can be only one auto column and it must be defined as …
10 mysql  query 

3
บันทึกธุรกรรมจะลดขนาดโดยอัตโนมัติใน SQL Server หรือไม่
เมื่อฐานข้อมูล SQL Server ในโหมด SIMPLE คุณไม่ต้องสนใจเกี่ยวกับ bakcups บันทึกธุรกรรม แต่ในโหมด SIMPLE บันทึกธุรกรรมดูเหมือนว่าจะเพิ่มขึ้นเช่นเดียวกับในโหมดเต็ม มีการตัดทอนอัตโนมัติในบางช่วงเวลาหรือไม่? หรือฉันต้องตัดทอน / ย่อขนาดด้วยตนเองหรือไม่?

2
ฉันจะสลายตารางนี้โดยไม่สูญเปล่าได้หรือไม่?
ฉันสะดุดกับปัญหาการออกแบบฐานข้อมูลที่ไม่ได้อยู่ในลีกของฉันและกูรู DBA ของฉันที่ไปใช้ยังอยู่ในช่วงซ้อมหนีไฟ ในสาระสำคัญฉันมีตารางที่มีคีย์หลักต่อไปนี้ (PK สำหรับความกะทัดรัด): child_id integer parent_id integer date datetime child_idและparent_idเป็นกุญแจต่างประเทศในตารางกิจการ ตาราง "child" นั้นมี foreign key ไปยังตาราง "parent" และแท้จริงแล้วแต่ละตัวchild_idจะอ้างอิงเหมือนกันparent_idตามที่คาดไว้โดยตารางข้างต้น ในความเป็นจริงปรากฎว่ามีโค้ดพิเศษบางอย่างที่ทำให้ทั้งสองซิงค์กันอยู่ ซึ่งทำให้สามเณรการปรับสภาพ overenthusiastic นี้พูดว่า "ฉันควรลบความซ้ำซ้อนแทน!" ฉันย่อยสลายต่อไปนี้: Table_1 PK: child_id integer date datetime Table_2 PK: parent_id integer date datetime Table_3: (already exists) child_id integer PRIMARY KEY parent_id integer FOREIGN KEY …

2
วิธีแทรกที่อยู่ IP ลงในคอลัมน์ inet ใน PostgreSQL ได้อย่างไร
ผมอยากจะแทรกอยู่ IP inetลงในคอลัมน์ที่มีประเภท ฉันสามารถแทรกข้อมูลในรูปแบบใดได้บ้าง มันเป็นไบนารีเท่านั้นหรือมีวิธีใดที่ฉันสามารถแทรกจากข้อความเช่น"192.168.1.082"? มีฟังก์ชั่นช่วยเหลือสำหรับสิ่งนี้เพื่อให้ฉันสามารถทดสอบได้จากpsqlในพร้อมท์คำสั่งหรือไม่

1
สถิติการอัปเดตอัตโนมัติใน SQL Server 2008R2: ทำไมบางสถิติยังคงค้างแม้ว่าจะมีการแทรกแถวจำนวนมาก
ในระหว่างการตรวจสอบแบบสอบถามที่ช้านั้นปรากฏว่าแผนการดำเนินการนั้นไม่ดีเท่าที่ควร เมื่อยืนยันแล้วว่ามีสถิติที่เกี่ยวข้องซึ่งจริง ๆ แล้วล้าสมัยฉันได้สร้างสถิติขึ้นมาใหม่และปัญหาประสิทธิภาพได้รับการแก้ไขอย่างมีประสิทธิภาพ ฐานข้อมูลนี้เปิดใช้งานสถิติการอัพเดทอัตโนมัติ (โดยค่าเริ่มต้น) ฉันเข้าใจว่ามีเกณฑ์สำหรับการอัปเดตสถิติอัตโนมัติโดยพิจารณาจากการแก้ไขแถว 20% + 500 (อัปเดต / แทรก / ลบ) เกณฑ์นี้ดูเหมือนจะเกินกว่าระดับสูงของดัชนีหลายรายการเช่นนั้นปรากฏว่ามี (A) ปัญหาเกี่ยวกับการอัปเดตอัตโนมัติหรือ (B) มีกลยุทธ์การอัปเดตมากกว่าที่ฉันพบได้ในออนไลน์ เอกสาร ฉันซาบซึ้งที่งานที่กำหนดเวลาไว้สามารถตั้งค่าเพื่ออัปเดตสถิติและนี่น่าจะเป็นแนวทางที่เราใช้หากไม่พบวิธีแก้ไขปัญหาอื่น ๆ อัปเดตอัตโนมัติสำหรับสถิติบางอย่าง - ทำความเข้าใจว่าทำไมอาจช่วยเราในการตัดสินใจว่าจะต้องอัปเดตสถิติใดโดยภารกิจที่กำหนดเวลาไว้ หมายเหตุเพิ่มเติมบางส่วน: 1) ปัญหาถูกบันทึกไว้ในฐานข้อมูลที่ข้อมูลถูกสร้างขึ้นโดยการทดสอบโหลดและเนื่องจากมีการเพิ่มข้อมูลจำนวนมากในช่วงเวลาสั้น ๆ ดังนั้นหากการอัปเดตอัตโนมัติเกิดขึ้นเป็นระยะ ๆ (เช่นวันละครั้งที่ ส่วนใหญ่) สิ่งนี้อาจอธิบายพฤติกรรมที่สังเกตได้บางอย่าง นอกจากนี้การทดสอบโหลดของเรามักจะเน้นที่ฐานข้อมูลอย่างหนักดังนั้นฉันสงสัยว่า SQL จะชะลอการอัปเดตสถิติขณะที่มีการโหลดจำนวนมากหรือไม่และไม่อัปเดตสถิติด้วยเหตุผลบางประการ 2) ในการพยายามสร้างปัญหานี้อีกครั้งด้วยสคริปต์ทดสอบที่มี INSERT ต่อเนื่องคำสั่ง SELECT และ DELETE จะไม่เกิดปัญหาขึ้น ฉันสงสัยว่าความแตกต่างที่นี่เป็นที่งบเหล่านี้แต่ละคนมีผลต่อแถวจำนวนมากต่อคำสั่ง SQL ในขณะที่สคริปต์ทดสอบโหลดของเราจะมีแนวโน้มที่จะแทรกแถวเป็นรายบุคคล 3) …

2
การกำหนดค่า MySQL 5.1 InnoDB / 24GB RAM - โหลดสูง bi-xeon
ฉันกำลังใช้งานแอพ facebook ซึ่งปัจจุบันมีผู้ใช้งานพร้อมกัน 300 - 600 คน (และกำลังเติบโต) เพื่อให้ฮาร์ดแวร์พร้อมสำหรับการเติบโตฉันได้เปลี่ยน i7 / 12gb ram / 2x 80gb intel x25 ssd (debian 5.0 / mysql 5.0 / 64 บิต) เป็น bi-xeon / 24gb ram / 2x 120gb intel 320 ssd (Ubuntu 10.10 / mysql 5.1 / 64bit) ตอนนี้ฉันกำลังเผชิญกับปัญหาที่ประสิทธิภาพแย่กว่า "กล่องขนาดเล็ก" ในเซิร์ฟเวอร์ทั้งสองฉันใช้ nginx / …

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

2
จำกัด การทำซ้ำสำหรับการดูการรีเฟรชที่สมบูรณ์แบบสมบูรณ์หรือเทียบเท่าแบบแมนนวล
ล็อกmaterialized view (MV)สามารถใช้เพื่ออนุญาตให้ MV ทำการรีเฟรชอย่างรวดเร็วซึ่งแก้ไขเฉพาะข้อมูลที่เปลี่ยนแปลง อย่างไรก็ตามเงื่อนไขต่าง ๆ ป้องกัน MV จากการใช้บันทึกและดังนั้นจึงต้องมีการรีเฟรชที่สมบูรณ์ ออราเคิลดำเนินการรีเฟรชสมบูรณ์แบบอะตอมมิกเพื่อลบและแทรกของทุกระเบียน มันทำเช่นนี้แม้ว่าในที่สุดจะไม่มีการเปลี่ยนแปลงข้อมูล มีวิธีที่จะทำให้การจำลองแบบนี้เป็นเรื่องเกี่ยวกับการสร้างซ้ำได้หรือไม่? MERGE ตามด้วย DELETE ต้องการเคียวรีซอร์สสองครั้ง มันจะคุ้มค่าหรือไม่ที่จะรวบรวมข้อมูลจำนวนมากเพื่อทำการรวมเป็นกลุ่มและลบ? มีวิธีที่ดีกว่า? ปรับปรุง: ฉันสำรวจโดยใช้ตารางชั่วคราวทั่วโลกเป็นพื้นที่จัดเตรียม แม้ว่าจะใช้การทำซ้ำน้อยกว่าครึ่ง แต่พวกเขายังคงใช้งานได้มาก

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

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