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

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

2
สิ่งใดที่ทำให้เซสชันการมิเรอร์หมดเวลาจึงเกิดความล้มเหลว
เรามีเซิร์ฟเวอร์การผลิต SQL สองเครื่องที่รัน SQL Server 2005 SP4 พร้อมการอัพเดท 3 เซิร์ฟเวอร์ทั้งสองทำงานบนเครื่องจริงที่เหมือนกัน DELL PowerEdge R815 พร้อมซีพียู 4 x 12 คอร์และ 512GB (ใช่ GB) ของ ram พร้อมไดรฟ์ที่เชื่อมต่อ iSCSI SAN ขนาด 10GB สำหรับฐานข้อมูลและบันทึก SQL ทั้งหมด ระบบปฏิบัติการเป็น Microsoft Windows Server 2008 R2 Enterprise ที่มีการอัพเดท SP และ windows ทั้งหมด ไดรฟ์ระบบปฏิบัติการคืออาร์เรย์ RAID 5 ของไดรฟ์ 3 x 72GB …

3
วิธีที่ไม่เจ็บปวดในการสร้างดัชนีคลัสเตอร์บนโต๊ะขนาดใหญ่หรือไม่
คำถามนี้ถูกโยกย้ายจาก Stack Overflow เพราะสามารถตอบได้ใน Exchange Administrators Stack Exchange อพยพ 7 ปีที่ผ่านมา ดังนั้นเราจึงมีเว็บไซต์ลูกค้าที่ร้องเรียนเกี่ยวกับประสิทธิภาพที่ช้ามาก ฉันลองดูหนึ่งครั้งและเห็นได้ชัดว่าปัญหานี้เกิดขึ้นเนื่องจากSomebody Else (grrrr) ออกแบบตารางที่มีระเบียนมากกว่า 20 ล้านรายการโดยไม่มีดัชนีคลัสเตอร์ ตอนนี้ฉันต้องการสร้างดัชนีคลัสเตอร์บนตารางนั้น - แต่ในสภาพแวดล้อมการทดสอบของฉันcreate indexคำสั่งของฉันทำงานเป็นเวลาหนึ่งชั่วโมงและยังไม่เสร็จ ไซต์ลูกค้าเป็นร้านค้าที่ใช้งานได้ตลอด 24 ชั่วโมงทุกวันและไม่สามารถเสียเวลาลงได้หนึ่งชั่วโมงในขณะที่ฉันสร้างดัชนี มีวิธีการบังคับใช้เดรัจฉานน้อยกว่าในการสร้างดัชนีที่จะทำให้งานเสร็จอย่างรวดเร็วหรือทำด้วยวิธีที่ชาญฉลาดซึ่งจะไม่ทำลายประสิทธิภาพของเซิร์ฟเวอร์โดยสิ้นเชิงในขณะที่กำลังทำงานอยู่หรือไม่? เรากำลังใช้ SQL Server Enterprise Edition

3
ทำไม 'โหลดข้อมูล INFILE' เร็วกว่าคำสั่ง INSERT ปกติ?
ฉันได้อ่านบทความที่กล่าวถึงเราสามารถบรรลุ60,000 แทรกต่อวินาทีโดยใช้LOAD DATA IN FILEคำสั่งที่อ่านจากไฟล์ csv และแทรกข้อมูลลงในฐานข้อมูล ทำไมมันควรแตกต่างจากเม็ดมีดทั่วไป? แก้ไข: ฉันลดการเดินทางไป - กลับโดยเรียกเพียงINSERTคำสั่งเดียว: INSERT INTO tblname VALUES (NULL,2,'some text here0'),(NULL,2,'some text here1') ,(NULL,2,'some text here2'),(NULL,2,'some text here3') .....,(NULL,2,'some text here3000'); แล้วเรื่องนี้ล่ะ
22 mysql  import  bulk 

4
จำกัด ผลลัพธ์ให้อยู่ในแถวที่ 2 อันดับแรก
ใน SQL Server 2008 ฉันใช้เพื่อกลับชุดข้อมูลที่มีRANK() OVER (PARTITION BY Col2 ORDER BY Col3 DESC) RANKแต่ฉันมีหลายร้อยเร็กคอร์ดสำหรับแต่ละพาร์ติชันดังนั้นฉันจะได้รับค่าจากอันดับ 1, 2, 3 ...... 999 แต่ฉันต้องการได้มากถึง 2 RANKsในแต่ละPARTITIONครั้ง ตัวอย่าง: ID Name Score Subject 1 Joe 100 Math 2 Jim 99 Math 3 Tim 98 Math 4 Joe 99 History 5 Jim 100 History 6 Tim 89 …

5
เหตุใดจึงต้องเริ่มต้นใหม่เป็นระยะ ๆ เพื่อให้อินสแตนซ์ของฉันทำงานได้ดี
คำถามนี้ถูกโยกย้ายจาก Stack Overflow เพราะสามารถตอบได้ใน Exchange Administrators Stack Exchange อพยพ 7 ปีที่ผ่านมา เรามีเซิร์ฟเวอร์ฐานข้อมูลการผลิตใน SQL 2005 ทุกอย่างทำงานได้ตามปกติ แต่หลังจากผ่านไปสองสัปดาห์เราจะเห็นว่าประสิทธิภาพการทำงานลดลง การรีสตาร์ท SQL Server จะทำให้ประสิทธิภาพกลับสู่ปกติ พื้นหลังบางส่วน: ใช้งานฐานข้อมูลมากกว่า 1,200 ฐานข้อมูล (ส่วนใหญ่เป็นผู้เช่ารายเดียวและมีหลายผู้เช่า) ก่อนที่ใครจะบรรยายเกี่ยวกับการย้ายไปยังผู้เช่าหลายคนเท่านั้นมีเหตุผลที่ถูกต้องในการรักษาโครงสร้างนี้ ...... RAM คือ 16 GB หลังจากรีสตาร์ทจะใช้เวลาไม่นานสำหรับ SQL Server ที่จะกลับไปใช้งานขนาด 15 GB การเชื่อมต่อฐานข้อมูล Active มีประมาณ 80 การเชื่อมต่อซึ่งเรารู้สึกว่าค่อนข้างดีเนื่องจากมีพูลการเชื่อมต่อหนึ่งต่อเว็บเซิร์ฟเวอร์ต่อกระบวนการดังนั้นเราจึงไม่มีปัญหาการรั่วไหลของการเชื่อมต่อ เราได้ลองหลายสิ่งหลายอย่างในเวลาที่ไม่มาก: - รัน DBCC DROPCLEANBUFFERS (พร้อม CHECKPOINT) เพื่อล้างแคชข้อมูล …

5
การเริ่มต้นเซิร์ฟเวอร์ SQL ใหม่เร็วขึ้นหรือไม่
คำถามนี้ถูกโยกย้ายจาก Stack Overflow เพราะสามารถตอบได้ใน Exchange Administrators Stack Exchange อพยพ 8 ปีที่ผ่านมา ฉันสังเกตเห็นว่า DBA บางตัวเริ่มการทำงานของ SQL Server บ่อยครั้งมากบางครั้งก็เป็นเวลากลางคืน ฉันเชื่อว่าพวกเขาทำเพื่อเพิ่มหน่วยความจำบางส่วนหรืออาจเพิ่มความเร็วการสืบค้นด้วย ฉันรู้ว่าหลังจากการรีสตาร์ทเคียวรีแผนต้องถูกคอมไพล์ใหม่ แต่ถึงอย่างนั้นฉันก็ยังสงสัยว่ามีประโยชน์สุทธิต่อการฝึกนี้หรือไม่ เป็นความจริงหรือไม่ที่การเริ่ม SQL Server ใหม่ทุกวันจะทำให้ทำงานเร็วขึ้นหรือไม่

4
ข้อผิดพลาดของ MySQL: การเข้าถึงถูกปฏิเสธสำหรับผู้ใช้ 'a' @ 'localhost' (ใช้รหัสผ่าน: ใช่)
'a'@'%'ผมใช้บัญชีรากสร้างบัญชี แต่ฉันไม่สามารถใช้บัญชีเพื่อเชื่อมต่อกับเซิร์ฟเวอร์ MySQL เมื่อฉันระบุพารามิเตอร์โฮสต์ ฉันสามารถเชื่อมต่อได้สำเร็จโดยไม่มี-hพารามิเตอร์ โปรดดูข้อความการถอดเสียงด้านล่าง ฉันหวังว่าบางคนสามารถช่วยฉันอธิบายได้ ขอบคุณ mysql> grant all on *.* to 'a'@'%' identified by a; ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'a' at line 1 …

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

4
ผลของการตั้งค่า varchar (8000) คืออะไร?
เนื่องจาก varchar ใช้พื้นที่ดิสก์ตามสัดส่วนกับขนาดของเขตข้อมูลมีเหตุผลใดที่เราไม่ควรกำหนด varchar เป็นค่าสูงสุดเสมอเช่นvarchar(8000)ใน SQL Server บนโต๊ะสร้างถ้าฉันเห็นใครทำvarchar(100)ฉันควรบอกพวกเขาไม่ผิดคุณควรทำvarchar(8000)อย่างไร

6
วิธีที่เร็วที่สุดในการตรวจสอบว่าตาราง InnoDB เปลี่ยนไปหรือไม่
แอปพลิเคชันของฉันเข้มข้นมากฐานข้อมูล ขณะนี้ฉันใช้งาน MySQL 5.5.19 และใช้ MyISAM แต่ฉันอยู่ในขั้นตอนการโอนย้ายไปยัง InnoDB ปัญหาเดียวที่เหลืออยู่คือประสิทธิภาพการตรวจสอบ แอปพลิเคชันของฉันทำประมาณ 500-1,000 CHECKSUM TABLEข้อความต่อวินาทีในช่วงเวลาเร่งด่วนเนื่องจากไคลเอนต์ GUI กำลังสำรวจฐานข้อมูลอย่างต่อเนื่องเพื่อการเปลี่ยนแปลง (เป็นระบบตรวจสอบดังนั้นต้องตอบสนองและรวดเร็วมาก) ด้วย MyISAM จะมีการตรวจสอบสดที่คำนวณล่วงหน้าบนการปรับเปลี่ยนตารางและเร็วมาก อย่างไรก็ตามไม่มีสิ่งนั้นใน InnoDB ดังนั้นCHECKSUM TABLEช้ามาก ฉันหวังว่าจะสามารถตรวจสอบเวลาอัปเดตล่าสุดของตารางได้โชคไม่ดีที่ InnoDB ไม่สามารถใช้ได้เช่นกัน ฉันติดอยู่ในขณะนี้เนื่องจากการทดสอบแสดงให้เห็นว่าประสิทธิภาพของแอปพลิเคชันลดลงอย่างมาก มีรหัสบรรทัดมากเกินไปที่จะอัพเดตตารางดังนั้นการใช้ตรรกะในแอปพลิเคชันเพื่อเปลี่ยนตารางบันทึกไม่เป็นไปตามคำถาม มีวิธีใดที่รวดเร็วในการตรวจจับการเปลี่ยนแปลงในตาราง InnoDB หรือไม่

7
คุณจะเตะผู้ใช้ออกจากฐานข้อมูล SQL Server 2008 ได้อย่างไร
เราจำเป็นต้องทำการกู้คืนและไม่สามารถทำได้เนื่องจากผู้ใช้รายอื่นเชื่อมต่ออยู่ เราคิดว่าเราตัดการเชื่อมต่อทุกขั้นตอน แต่ดูเหมือนจะไม่ จาก Studio Management เราจะเริ่มต้นกับคนอื่นได้อย่างไรเพื่อให้เราสามารถสำรองข้อมูลนี้ได้

2
คุณรีเซ็ตรหัสผ่าน sa ได้อย่างไร
ฉันลืมรหัสผ่าน sa บนเครื่องและเมื่อฉันเข้าสู่ระบบโดยตรงโดยใช้บัญชีในกลุ่มผู้ดูแลระบบ SQL Server Management Studio จะไม่อนุญาตให้ฉันเข้าสู่ระบบโดยใช้การรับรองความถูกต้องของ Windows แผนของฉันคือเพียงลงชื่อเข้าใช้เซิร์ฟเวอร์เชื่อมต่อผ่านการรับรองความถูกต้องของ Windows และรีเซ็ต sa ให้ใช้รหัสผ่านใหม่ เนื่องจากฉันไม่สามารถเชื่อมต่อผ่านการรับรองความถูกต้องของ Windows สิ่งนี้จะไม่ทำงาน ฉันจะรีเซ็ตรหัสผ่าน sa ได้อย่างไร

1
ข้อ จำกัด ของ SQLite
ไกลแค่ไหนที่สามารถใช้ฐานข้อมูล sqlite จากเครื่องยนต์ db ผู้ใช้เดียวฝังตัวต้นแบบที่มุ่งเน้น?
22 sqlite 

7
ฉันจะหาคำแนะนำเกี่ยวกับกลยุทธ์ดัชนีได้ที่ไหน
พวกเราส่วนใหญ่คงเห็นด้วยว่าการใช้ดัชนีฐานข้อมูลนั้นดี ดัชนีและประสิทธิภาพมากเกินไปสามารถลดระดับลงได้จริง ตามกฎทั่วไปแล้วควรจะทำดัชนีฟิลด์ใด ฟิลด์ใดที่ไม่ควรทำดัชนี มีกฎอะไรบ้างสำหรับการใช้ดัชนีในขณะที่สร้างความสมดุลระหว่างดัชนีมากเกินไปและไม่เพียงพอเพื่อให้เกิดการปรับปรุงประสิทธิภาพไม่ใช่การย่อยสลาย?
22 index 

4
'หลีกเลี่ยงการสร้างดัชนีแบบคลัสเตอร์โดยยึดตามคีย์ที่เพิ่มขึ้น' เป็นตำนานมาจาก SQL Server 2000 หรือไม่
ฐานข้อมูลของเราประกอบด้วยตารางจำนวนมากโดยส่วนใหญ่ใช้คีย์ตัวแทนจำนวนเต็มเป็นคีย์หลัก ประมาณครึ่งหนึ่งของคีย์หลักเหล่านี้อยู่ในคอลัมน์ข้อมูลประจำตัว การพัฒนาฐานข้อมูลเริ่มต้นขึ้นในยุคของ SQL Server 6.0 หนึ่งในกฎที่ใช้จากจุดเริ่มต้นคือหลีกเลี่ยงการสร้างดัชนีคลัสเตอร์บนพื้นฐานของความสำคัญที่เพิ่มขึ้นในขณะที่คุณพบในเหล่านี้ดัชนีเคล็ดลับการเพิ่มประสิทธิภาพ ตอนนี้ใช้ SQL Server 2005 และ SQL Server 2008 ฉันมีความประทับใจอย่างมากว่าสถานการณ์เปลี่ยนไป ในขณะเดียวกันคอลัมน์คีย์หลักเหล่านี้เป็นตัวเลือกแรกที่สมบูรณ์แบบสำหรับดัชนีกลุ่มของตาราง

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