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

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

2
มี gotchas เลยด้วยการแปลงจาก MyISAM เป็น InnoDB?
ฉันพร้อมที่จะย้ายจาก MyISAM ไปยัง InnoDB แล้ว แต่ต้องการทราบว่ามีรายการสิ่งที่ต้องค้นหามากมายหรือไม่ ตัวอย่างเช่นผมไม่ได้เห็นกล่าวถึงรายการใด ๆ ที่ทำงานDISABLE KEYSบนตาราง InnoDB ALTER TABLEจะโยนเตือนยกเว้นหน้าคู่มือสำหรับ มันเป็นสิ่งที่ฉันต้องรู้ก่อนที่จะเปลี่ยนใจ ฉันคิดว่าฉันสบายดีกับคำสั่งของฉัน แต่ดูเหมือนจะไม่
11 mysql  innodb  myisam 

5
วิธีฟื้นฟูตัวนับประสิทธิภาพ SQL Server 2008 R2
ฉันใช้ SQL Server 2008 R2 Developer บน Windows 7 x64 เป็นอินสแตนซ์เริ่มต้น ด้วยเหตุผลบางอย่างเคาน์เตอร์วัดประสิทธิภาพของ SQL Server ดูเหมือนจะหายไป SELECT * FROM sys.dm_os_performance_countersส่งกลับศูนย์แถว lodctr /T:perf-MSSQLSERVERsqlctr.iniผมพยายามทำงาน แม้ว่ามันจะเสร็จสมบูรณ์โดยไม่มีข้อผิดพลาด แต่ก็ไม่ได้แก้ไขอะไรแม้หลังจากรีสตาร์ทบริการรีจิสตรี ที่จริงเคาน์เตอร์หายไปจาก perfmon แล้ว unlodctr MSSQLSERVERยังคงบอกว่าตัวนับไม่ได้รับการติดตั้ง แต่lodctr /Q:MSSQLSERVERบอกว่ามีอยู่และเปิดใช้งานอยู่ ตัวนับ Windows และ. NET ปกติทำงานได้ดี ในบันทึกข้อผิดพลาดของ Windows ฉันเห็นข้อผิดพลาด 8317: ไม่สามารถสอบถามค่า 'ตัวนับแรก' ที่เกี่ยวข้องกับรีจิสตรีคีย์ 'HKLM \ SYSTEM \ CurrentControlSet \ Services \ …

5
SQL Server เก็บผลลัพธ์ของกระบวนการแคชข้อมูลหรือไม่
ฉันเคยได้ยินเรื่องนี้จากเพื่อน แต่ฉันไม่เคยตรวจสอบว่าเรื่องนี้เป็นเรื่องจริงหรือไม่ เป็นความจริงหรือไม่ที่ผลลัพธ์ข้อมูลของคิวรีที่ดำเนินการถูกเก็บไว้ในแคช? ฉันหมายถึงถ้าฉันมีขั้นตอนการจัดเก็บเช่น: SELECT * FROM USERLIST ... เป็นความจริงหรือไม่ที่ผลลัพธ์ (รายการผู้ใช้ในกรณีนี้) ถูกเก็บไว้ในแคช นอกจากนี้ถ้าฉันมีสิ่งเหล่านี้: SELECT * FROM USERLIST WHERE user="user" SELECT * FROM USERLIST WHERE user="userzzz" (ผู้ใช้ / userzzz ถูกส่งผ่านเป็นพารามิเตอร์) ถูกต้องหรือไม่ว่ามันเก็บผลลัพธ์ที่แตกต่างกัน 2 รายการไว้ในแคชฐานข้อมูล ฉันไม่คิดอย่างนั้น แต่ฉันต้องการคำยืนยันจากคุณผู้เชี่ยวชาญ!

1
จำกัด ระดับของการขนาน (DOP) ที่มีให้กับแบบสอบถาม
ใน Oracle Exadata (11gR2) เรามีฐานข้อมูลที่ค่อนข้างอ้วน cpu_count คือ 24 parallel_server_instances คือ 2 parallel_threads_per_cpu คือ 2 เราสังเกตเห็นว่าจากการสังเกตใน Oracle Enterprise Manager (OEM) ประสิทธิภาพนั้นแย่มากเนื่องจากมีการดำเนินการแบบสอบถามอย่างจริงจัง เพื่อแก้ไขปัญหานี้ตารางทั้งหมดมุมมองที่เป็นรูปธรรมและดัชนีถูกเปลี่ยนเพื่อใช้ประโยชน์จากความเท่าเทียม เช่น: ALTER TABLE SOME_TABLE PARALLEL (DEGREE DEFAULT INSTANCES DEFAULT); ระบบมีการเปลี่ยนแปลงเพื่อเปิด parallelisation: ALTER SYSTEM SET PARALLEL_DEGREE_POLICY = 'AUTO'; สิ่งนี้ส่งผลให้มีประสิทธิภาพที่ดีขึ้น แต่บางครั้งเราสังเกตเห็นใน OEM ว่าแบบสอบถามเดียวจะผูก DOP จาก 96 (ทรัพยากรที่มีอยู่ทั้งหมด) สิ่งนี้ทำให้เคียวรีลำดับต่อมาถูกลดระดับเป็น DOP เป็น 1 …

2
วิธีสร้างการแจ้งเตือนเหตุการณ์ที่เรียกใช้งาน / ขั้นตอนเมื่อทำมิเรอร์การเปลี่ยนแปลงสถานะ
ฉันถามคำถามตามลำดับของอันนี้ฉันสามารถส่งสตริงผ่าน TCP โดยใช้ T-SQL ได้ไหม? Remus Rusanu แสดงให้เห็นว่ามันเป็นทางออกที่ดีที่สุดสำหรับปัญหาของฉัน แต่ ... ฉันยังเด็กเกินไปที่จะเข้าใจและทำทุกสิ่งที่เขาพูด จนถึงตอนนี้ฉันคิดว่าสิ่งที่ฉันต้องสร้างเหตุการณ์การแจ้งเตือนสำหรับ DATABASE_MIRRORING_STATE_CHANGE ฉันถูกต้องหรือไม่ ฉันจะสร้างการแจ้งเตือนเหตุการณ์นี้ได้อย่างไรเมื่อมีการทริกเกอร์แทรกบรรทัดในตารางที่จัดเก็บการประทับเวลาและ ID ที่มาจากการแจ้งเตือน จนถึงตอนนี้ฉันกำลังตั้งค่าการแจ้งเตือนหนึ่งรายการต่อ ID แต่ละคนกำลังทำงานเช่นนี้ (ตัวอย่างนี้สำหรับ ID = 1): DECLARE @state AS varchar(50); SELECT @state = mirroring_state_desc FROM SYS.database_mirroring WHERE mirroring_guid IS NOT NULL; IF (@state IS null) SET @state = ' '; INSERT INTO …

1
การโอนย้ายจากฐานข้อมูลฟิสิคัลไปยังฐานข้อมูลคลาวด์
อะไรคือความหมายของการย้ายฐานข้อมูลทางกายภาพในการสร้างของ Microsoft SQL Server 2008R2 ที่ทำให้การใช้คุณสมบัติขั้นสูงเช่นการค้นหาข้อความเต็มใน varchar (MAX) FILESTREAM Blobs เพื่อSQL Azure ? ต้องการการเปลี่ยนแปลงทางสถาปัตยกรรมใดบ้าง มีขั้นตอนอะไรบ้างในการเปลี่ยนแปลงนี้? SQL Azure Migration Wizzard ไม่สามารถเป็นเครื่องมือวิเศษที่ทำให้เกิดการเปลี่ยนแปลงโดยอัตโนมัติ ปัญหาความเข้ากันได้ที่เครื่องมือการโยกย้ายไม่สามารถแก้ไขได้และควรทำงานด้วยตนเอง "ด้วยตนเอง" คืออะไร

3
แคชฐานข้อมูล MySQL ในหน่วยความจำ
ฉันมีปัญหากับเว็บไซต์ที่มีฐานข้อมูล MySQL 600MB เว็บไซต์ช้าเกินไป ฉันสังเกตว่าฐานข้อมูล MySQL ที่ใหญ่ขึ้นนั้นจะช้าลง เมื่อมันเป็น 5MB เว็บไซต์นั้นเร็วมาก เมื่อมันเริ่มมีขนาดใหญ่ขึ้นมันก็เริ่มช้าลงและช้าลงและตอนนี้ที่ 600MB มันช้าจริงๆใช้เวลาในการโหลดหน้าเว็บประมาณ 10 วินาที ฉันตรวจสอบกระบวนการด้านบนและไม่มีอะไรเกี่ยวข้องกับโหลดสูงหรืออะไร มันไม่ได้เกี่ยวข้องกับ IOPS เมื่อฉันทำการทดสอบบนไดรฟ์ HDD 7.2k rpm และมันก็มีปัญหาแบบเดียวกันตอนนี้กับการทดสอบกับไดรฟ์ Intel 320 SSD ดังนั้นฉันไม่คิดว่ามันจะเป็นการสืบค้นที่สูง เว็บไซต์กำลังใช้งาน Wordpress และมีปลั๊กอินที่เหมือนกัน 9 รายการ มีคนบอกว่ามันอาจเป็นปลั๊กอิน ... บางทีอาจจะ ... แต่ตอนนี้ฉันแค่ต้องการแคชฐานข้อมูลทั้งหมดในหน่วยความจำและต้องการขอความช่วยเหลือและทิศทางในการเริ่มต้นและวิธีการที่จะทำ ฉันมี 16GB RAM และ i5-2400 4 cores ที่ 3.1 GHz ระบบปฏิบัติการคือ centos 5.7 …

4
ช่วยฉันเลือกชุดค่าระดับ RAID สำหรับอินสแตนซ์ของ SQL Server 2008
ฉันจะสร้างเซิร์ฟเวอร์ IBM 3400 ขึ้นใหม่ตั้งแต่ต้น เซิร์ฟเวอร์นี้ทุ่มเทให้กับอินสแตนซ์ SQL Server 2008 ที่ทำงานบน Windows 2008 R2 ฉันจะสร้างการกำหนดค่า RAID ใหม่ ฉันมีไดรฟ์ SCSI 73 GB 6 ตัวในเครื่องและตัวควบคุม IBM ServerRAID 8K อะไรจะเป็นวิธีที่ดีในการตั้งค่าระดับ RAID? ฉันควรจะมีสองสามหรือหนึ่งเขตข้อมูลใน controler ของฉัน? ฉันกำลังพิจารณาที่จะทำหนึ่งในวิธีแก้ปัญหาต่อไปนี้: ใช้ดิสก์ทั้งหมดและสร้างพูล RAID 10 ใช้ดิสก์ 4 ดิสก์สำหรับพูล RAID 1e และใช้เพื่อเก็บข้อมูลฐานข้อมูลและระบบปฏิบัติการและใช้ดิสก์ 2 ดิสก์อื่นในพูล RAID 0 และใช้เพื่อเก็บบันทึกฐานข้อมูล รวมกันบ้าง หน่วยแถบขนาดใหญ่กว่าดีกว่าหรือไม่ เซิร์ฟเวอร์นี้จะเป็นสมาชิกของฐานข้อมูลที่จำลองแบบแล้ว ภารกิจหลักของมันคือการรายงานและดึงข้อมูลโดยมีเอเจนต์การจำลองแบบเท่านั้นที่ทำการเขียน ขนาดของฐานข้อมูลอยู่ที่ประมาณ 90 …

3
บันทึกการเชื่อมต่อใน SSMS หรือไม่
ฉันสามารถบันทึกเซสชันหรือโปรไฟล์บางประเภทใน SSMS (2008 r2) ที่จะเปิดการเชื่อมต่อไปยังรายการเซิร์ฟเวอร์ฐานข้อมูลที่บันทึกไว้เมื่อฉันเปิด SSMS ได้หรือไม่ ตัวอย่างเช่นฉันมักจะเปิด SSMS แล้วเชื่อมต่อกับเซิร์ฟเวอร์ SQL NY-DB01, NY-DB02 ฯลฯ ... ฉันสามารถมีทางลัดบางอย่างเพื่อเปิดสิ่งเหล่านี้ทั้งหมดในครั้งเดียวได้หรือไม่?

5
mysqldump ไม่สมบูรณ์
ฉันพยายามเรียกใช้ mysqldump เพื่อสร้างสแนปชอตของฐานข้อมูลและฉันพบว่ามันจะหยุดกลางคันแบบสุ่มโดยไม่ต้องรายงานข้อผิดพลาดใด ๆ ฐานข้อมูลของฉันมีขนาดค่อนข้างเล็ก (ประมาณ 100MB) และใช้งาน InnoDB ฉันใช้มันเหมือน: mysqldump --force --single-transaction --quick --user myuser --password=mypass -h mydatabasehost mydb > /tmp/snapshot.sql การตรวจสอบรหัสออกรายงาน 0 รุ่นของฉันคือ: mysqldump Ver 10.13 Distrib 5.1.52 สำหรับ redhat-linux-gnu (i386) ฉันเคยเห็นโพสต์ที่คล้ายกันและแม้กระทั่งรายงานข้อผิดพลาดอย่างเป็นทางการแต่ดูเหมือนว่าจะไม่มีวิธีแก้ปัญหา ฉันจะใช้ mysqldump เพื่อถ่ายภาพฐานข้อมูลที่สมบูรณ์ได้อย่างไร แก้ไข: ฐานข้อมูลของฉันอยู่ใน RDS ของ Amazon ในปัจจุบัน

2
เพื่อเพิ่มประสิทธิภาพฐานข้อมูลให้มากที่สุดคำสั่งใดที่ควรรันหลังจากโหลดข้อมูลจำนวนมากลงใน SQL Server 2008 ผ่าน SSIS
ฉันได้เขียนแพ็คเกจ SSIS เพื่อโหลดข้อมูลทดสอบลงในฐานข้อมูลเปล่า ตารางบางตารางมีขนาดใหญ่มาก (ประมาณ 700 ล้านแถว) เมื่อแพคเกจ SSIS เสร็จสิ้นแล้วมีคำสั่งใดบ้างที่ฉันควรเรียกใช้ (ในฐานะผู้ฝึกงาน DBA!) เพื่อเพิ่มประสิทธิภาพของฐานข้อมูล? ตัวอย่างเช่นฉันดำเนินการEXEC sp_updatestatsแต่รายงานว่าไม่จำเป็นต้องมีการอัพเดตดัชนี มีรายการของสิ่งที่ต้องทำเมื่อโหลดข้อมูลจำนวนมากหรือ SQL Server 2008 จัดการสิ่งเหล่านั้นให้คุณหรือไม่?

3
คอลัมน์ที่รวมกับดัชนีที่กรอง
ขณะนี้เราทำงานกับตารางชื่อtb_tranfers ตารางนี้มี 40 ล้านแถวและมีขนาด ~ 26 GB (ข้อมูล 11 GB, ดัชนี 15 GB) 10 ถึง 15% ของแถวเป็นแถวที่ถูกลบแบบอ่อน ( DeletedDateไม่ใช่ค่าว่าง) แอปพลิเคชันใช้เฉพาะแถวที่DeletedDateเป็นโมฆะ แบบสอบถามทั้งหมดในตารางนี้จะมีส่วนคำสั่งที่มีผล มี 15 ดัชนีในตารางนี้ ดัชนี DMV ที่ขาดหายไปมีคำแนะนำในการสร้างดัชนีด้วยDeletedDateเป็นคอลัมน์ที่รวมอยู่ จะเป็นประโยชน์หรือไม่ที่จะใช้ดัชนีที่กรองแล้วในดัชนีWHERE DeleteDdate IS NULLที่ไม่ได้กล่าวถึงทั้ง 11 ดัชนี หรือมันจะดีกว่าที่จะมีคอลัมน์DeletedDateเป็นคอลัมน์ที่รวมหรือไม่

1
ดัชนีข้อความแบบเต็มใน SSMS 2008 R2 อยู่ที่ไหน
ฉันสร้างฐานข้อมูลใหม่ไม่กี่ตารางและดัชนีข้อความแบบเต็ม & แคตตาล็อกโดยใช้ Studio จัดการเซิร์ฟเวอร์ SQL โดยไม่มีปัญหา ฉันต้องการคัดลอกสคริปต์การสร้าง T-SQL สำหรับแต่ละสคริปต์เพื่อรวมไว้ในเอกสารของฉัน ฉันสามารถรับสคริปต์การสร้างสำหรับฐานข้อมูลตารางคีย์ต่างประเทศและแคตตาล็อก แต่ดูเหมือนไม่พบดัชนีข้อความแบบเต็ม ฉันได้ตรวจสอบตารางสคริปต์ของตารางที่เกี่ยวข้องเป็น -> สร้างถึงและไม่อยู่ที่นั่นหรือไม่ได้อยู่ในแคตตาล็อก ความคิดใด ๆ เป็นเพราะฉันใช้ SQL Server Standard edition เท่านั้นหรือ

2
โหลดบาลานเซอร์กับการรวมการเชื่อมต่อ - มีความแตกต่างหรือไม่?
ฉันกำลังทำงานในโครงการที่คาดว่าจะให้บริการผู้ใช้หลายล้านคนหลังจากเปิดตัวไม่นาน ฐานข้อมูลเป็น postgres และตอนนี้ฉันสมมติว่าต้องมีเซิร์ฟเวอร์อย่างน้อยสองตัว ผู้ดูแลระบบ sys (ซึ่งมีความเชี่ยวชาญในระบบที่ปรับขนาดได้อย่างชัดเจน) ได้แนะนำให้วาง load balancer ไว้ระหว่างเว็บเซิร์ฟเวอร์และเซิร์ฟเวอร์ฐานข้อมูล คำถามของฉันเกี่ยวกับความแตกต่างของการทำโหลดบาลานซ์กับการรวมการเชื่อมต่อ เพื่อรักษาประสิทธิภาพฉันควรจะดูที่หนึ่งหรืออื่น ๆ หรือทั้งสองอย่าง?
11 postgresql 

3
รูปแบบการกู้คืน SQL Server 2008 / R2
ฐานข้อมูลทั้งหมดของเราบนเซิร์ฟเวอร์บางตัวไม่จำเป็นต้องใช้แบบจำลองการกู้คืนข้อมูลเต็มรูปแบบ (เราไม่ทำการสำรองข้อมูลบันทึกธุรกรรม) และค่าเริ่มต้นควรจะสร้างฐานข้อมูลและระบุรูปแบบการกู้คืนแบบง่ายเสมอ ค่อนข้างบ่อยและด้วยเหตุผลบางประการฐานข้อมูลจำนวนมากถูกสร้างขึ้นโดยใช้ SSMS อย่างไรก็ตามข้อผิดพลาดสามารถทำได้และผู้ปฏิบัติงานสามารถลืมระบุรูปแบบการกู้คืนอย่างง่าย สิ่งนี้นำไปสู่ ​​"แปลกใจ" ในอีกสองสามวันต่อมาเมื่อกล่องกำลังต่อสู้กับพื้นที่ดิสก์เนื่องจากไฟล์บันทึก 60GB สามหรือสี่ไฟล์ที่ไม่เคยถูกตัดทอน ฉันสามารถสร้างรูปแบบการกู้คืนอย่างง่ายเป็นค่าเริ่มต้นสำหรับฐานข้อมูลใหม่โดยการกำหนดค่ารูปแบบการกู้คืนในmodelฐานข้อมูล อย่างไรก็ตามแนะนำนี้ถ้าฉันทำสิ่งนี้มันจะกลับมาและกัดฉันในทางใดทางหนึ่งในอนาคต?

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