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

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

5
แนวปฏิบัติที่ดีที่สุดแบบขนาน
อะไรคือแนวปฏิบัติที่ดีที่สุดในการตั้งค่าความเท่าเทียมกันโดยทั่วไป? ฉันรู้ว่า SQL Server เป็นค่าเริ่มต้นที่0จะใช้โปรเซสเซอร์ที่มีอยู่ทั้งหมด แต่ในอินสแตนซ์ใดที่คุณต้องการเปลี่ยนพฤติกรรมเริ่มต้นนี้ ฉันจำได้ว่าอ่านที่ไหนสักแห่ง (ฉันจะต้องมองหาบทความนี้) ว่าสำหรับภาระงาน OLTP คุณควรปิด parallelism (ตั้ง maxdop เป็น1) ฉันไม่คิดว่าฉันเข้าใจอย่างถ่องแท้ว่าทำไมคุณถึงทำเช่นนี้ เมื่อใดที่คุณจะรักษา maxdop สูงสุดถึง SQL Server (0) เมื่อใดที่คุณจะปิดการขนานกัน (1) เมื่อใดที่คุณจะระบุ maxdop ให้ชัดเจนกับโปรเซสเซอร์จำนวนหนึ่ง อะไรที่ทำให้ขนานกัน

4
การช่วงชิง DDL บน TempDB
ฉันมี SQL Server 2005 Standard x64 ที่ประสบปัญหากับการช่วงชิงการแข่งขัน DDDB ของ TempDB ในช่วงสองสามเดือนที่ผ่านมา เซิร์ฟเวอร์จะได้รับการช่วงชิงทรัพยากรรอ 2: 1: 103 (ประเภทรอเป็น PAGELATCH_EX) ปัญหานี้เกิดขึ้นเป็นระยะ ๆ เมื่อเซิร์ฟเวอร์อยู่ในช่วงโหลดที่เหมาะสม ฉันได้ตรวจสอบอัตรา "ตารางชั่วคราวสำหรับการทำลาย" และสามารถข้ามไปที่ 5,000+ ในช่วงเวลาที่เรามีปัญหาของ PAGELATCH_EX ใน 2: 1: 103 จากสิ่งที่ฉันได้อ่านตัวนับนี้ควรเป็น 0 เวลาส่วนใหญ่ แต่ดูเหมือนว่าพวกเราจะอยู่ที่ใดก็ได้ตั้งแต่ 300-1100 ส่วนใหญ่ ตัวนับจะไปที่ 0 เมื่อมีผู้ใช้น้อยมากในระบบ ฉันจะแคบลงสิ่งที่ทำให้เกิดการแข่งขัน DDL ใน tempdb โดยไม่ต้องมองหาเข็มในกองหญ้าแห้งได้อย่างไร

2
นี่เป็นชุดสิทธิ์ MySQL ปกติหรือไม่
การใช้ phpmyadmin ในการตั้งค่าการทดสอบในเครื่องและมีชื่อผู้ใช้ 3 คนที่ทำเครื่องหมายว่าเป็นผู้ใช้ = ANY, รหัสผ่าน = NO เช่น: USER | HOST | Password | Global Priv | Grant -----+---------+----------+-------------+------ Any | % | No | USAGE | No Any | Local | No | USAGE | No Any | Domain | No | USAGE | No -----+---------+----------+-------------+------ …

2
SQL Server: วิธีหลีกเลี่ยงสิทธิ์ดูแลระบบ แต่ให้สิทธิ์อย่างเพียงพอ
ฉันมีเพื่อนร่วมงานที่ต้องการเข้าถึงอินสแตนซ์ SQL Server 2008 หนึ่งรายการ ฉันจะต้องให้สิทธิ์กับเขาในกรณีนี้ เขาควรมีสิทธิ์ทำเช่น เพิ่มและแก้ไขการเข้าสู่ระบบเซิร์ฟเวอร์ เพิ่มและแก้ไขแผนการบำรุงรักษา (เช่นสร้างการสำรองข้อมูลจากฐานข้อมูล) ตัวแทนกำหนดการ ฉันไม่ต้องการให้สิทธิ์ดูแลระบบแก่เขาเขาควรจะได้รับสิทธิอะไรบ้าง

2
ฉันจะช่วย SQL Server ให้รู้ได้อย่างไรว่าคอลัมน์มุมมองที่จัดทำดัชนีของฉันไม่เป็น NULL
ฉันมีมุมมองการจัดทำดัชนีต่อไปนี้กำหนดไว้ใน SQL Server 2008 (คุณสามารถดาวน์โหลด schema การทำงานจากส่วนสำคัญสำหรับการทดสอบ): CREATE VIEW dbo.balances WITH SCHEMABINDING AS SELECT user_id , currency_id , SUM(transaction_amount) AS balance_amount , COUNT_BIG(*) AS transaction_count FROM dbo.transactions GROUP BY user_id , currency_id ; GO CREATE UNIQUE CLUSTERED INDEX UQ_balances_user_id_currency_id ON dbo.balances ( user_id , currency_id ); GO user_id, currency_idและtransaction_amountมีการกำหนดไว้ทั้งหมดเป็นคอลัมน์ในNOT NULL …

4
Oracle ส่งคืนข้อผิดพลาด ORA-01031: สิทธิ์ไม่เพียงพอ
Oracle ส่งคืนข้อผิดพลาด "ORA-01031: สิทธิ์ไม่เพียงพอ" เมื่อฉันเรียกใช้sqlplus / as sysdbaแต่sqlplus sys/oracle123 as sysdbaทำไม่ได้ทำไม เวอร์ชันของ Oracle: Oracle Database 10g Enterprise Edition รีลีส 10.2.0.1.0 - 64 บิต รุ่น Linux: SUSE Linux Enterprise Server 11 (x86_64) ฉันรู้ว่า Oracle ใช้การตรวจสอบระบบปฏิบัติการเมื่อทำงานsqlplus / as sysdbaผมยังตรวจสอบ sqlnet.ora SQLNET.AUTHENTICATION_SERVICES = (NTS)อย่างรอบคอบและจะมี ฉันยังเปลี่ยนกลุ่มผู้ใช้ oracle ผู้ใช้ oracle อยู่ในกลุ่ม dba อย่างแน่นอนเพราะเมื่อฉันเรียกใช้รหัสคำสั่งข้อมูลที่ส่งกลับจะเป็นดังนี้: oracle@linux-mage:~> id …
9 linux  oracle 

3
MySQL ประสิทธิภาพสูงสำหรับการเลือกจำนวนมาก / INSERTs / UPDATEs / DELETEs
ฉันกำลังสร้างโมดูลที่ผู้ใช้ทุกคนมักจะได้รับการบันทึกลงในตารางเป็นเวลา 10 ถึง 300 วินาที เมื่อเวลาหมดอายุบันทึกจะถูกลบ กรณีคือ: จะมีผู้ใช้จำนวนมากและเรคคอร์ดจะเปลี่ยนแปลงบ่อยมาก - สิ่งนี้จะส่งผลต่อประสิทธิภาพของแอปพลิเคชั่นสำหรับตารางนี้อย่างไรเพราะเรคคอร์ดจะเปลี่ยนบ่อยมากและฉันสงสัยว่า mysql ดีกับมันหรือไม่? เช่นเดียวกับดัชนีที่จะมาและไปข้อมูลจะเปลี่ยนไปเช่น 200 ครั้ง / วินาทีสำหรับตารางนี้ บางทีฉันอาจเลือกวิธีที่ไม่ดีสำหรับงานประเภทนี้ ข้อเสนอแนะใด ๆ ขอบคุณ!

2
PowerShell เพื่อรับตัวนับหน่วยความจำเซิร์ฟเวอร์ sql และแสดงค่า
ฉันกำลังเขียนสคริปต์ powershell เพื่อจับภาพเคาน์เตอร์เซิร์ฟเวอร์ SQL ต่อไปนี้: SQL Server: ตัวจัดการหน่วยความจำ: หน่วยความจำเซิร์ฟเวอร์ทั้งหมด (KB) SQL Server: ตัวจัดการหน่วยความจำ: หน่วยความจำเซิร์ฟเวอร์เป้าหมาย (KB) เครื่องของฉันมีเซิร์ฟเวอร์ SQL 3 อินสแตนซ์ดังนั้นฉันต้องการให้สคริปต์นี้จับตัวนับทั้งหมดแบบไดนามิกและรายงานค่าสำหรับ 1 ตัวอย่างเท่านั้น ฉันพยายามเขียนสิ่งต่อไปนี้: Get-counter -List *SQL*Memory* | Select paths, counter | format-list # doesn't display full list Get-counter -List *SQL*Memory* | Select paths, counter | where {_.counter -like "*server memory*"} |format-list …


3
Yelp คำนวณระยะทางในฐานข้อมูลได้อย่างมีประสิทธิภาพได้อย่างไร
ตัวอย่างเช่นฉันมีตาราง: Business(BusinessID, Lattitude, Longitude) ทั้งหมดได้รับการจัดทำดัชนีแน่นอน นอกจากนี้ยังมี 1 ล้านบันทึก สมมติว่าฉันต้องการค้นหาธุรกิจที่ใกล้เคียงกับ 106,5 ตัวอย่างเช่นฉันจะทำอย่างไร ถ้าฉันทำ SELECT * FROM Business WHERE (Some formula to compute distance here) < 2000 ตัวอย่างเช่นหรือถ้าฉันทำ SELECT * FROM Business TOP 20 ในทางทฤษฎีคอมพิวเตอร์จะต้องคำนวณระยะทางสำหรับเจ้าหน้าที่ทุกคนในขณะที่ในทางปฏิบัติเฉพาะผู้ที่มี lattitude และลองจิจูดในช่วงที่ควรจะคำนวณ ดังนั้นฉันจะทำสิ่งที่ฉันต้องการใน PhP หรือ SQL ได้อย่างไร ฉันรู้สึกซาบซึ้งกับคำตอบที่ได้รับ ฉันกำลังใช้ mysql และพวกเขาไม่มีอะไรมีประสิทธิภาพมากกว่าโซลูชันที่ชัดเจน MySQL อวกาศไม่มีฟังก์ชันคำนวณระยะทางเช่นกัน

3
ผู้ใช้บ่นว่าระบบทำงานช้าเมื่อ mysqldump อยู่ในระหว่างดำเนินการ
ฐานข้อมูล MYSQL (ibdata1) มีขนาด 73 GB และถูกกำหนดค่าให้ทำงานเป็นเซิร์ฟเวอร์ฐานข้อมูลเฉพาะบน Windows 2008 O / S สำหรับตาราง INNODB เรากำลังสำรองข้อมูลโดยใช้ mysqldump mysqldump --skip-opt --quick - transaction -create-options --extended-insert --disable-keys --add-drop-table - complete-insert - set-charset - การบีบอัด --log-error = Proddb0635.err -u root -pjohndoe Proddb> \ devNas \ devNas \ sqNbackup \ LIVE \ db \ Proddb0635.sql …

3
การผูกมัดงานของ บริษัท ตัวแทนของเซิร์ฟเวอร์ SQL
ฉันมีแพคเกจงานหลายอย่างสำหรับแต่ละฉันมีการตั้งค่างานในตัวแทนเซิร์ฟเวอร์ sql บางครั้งฉันควรวิ่งไปด้วยกัน เป็นวิธีที่ดีที่สุดในการทำงานทั้งหมดในลำดับที่กำหนดคืออะไร ฉันรู้สึกประหลาดใจเล็กน้อยที่ตัวแทนเซิร์ฟเวอร์ sql ไม่สามารถรวมงานเป็นขั้นตอนงานที่จะดำเนินการ ฉันลองแล้ว

1
ประโยชน์ของการเรียกใช้ OPTIMIZE TABLE Query ใน MySQL DB Server
ฉันอยากจะรู้ว่าอะไรคือประโยชน์ [การปฏิบัติจริง ๆ ] ที่สามารถอ่านได้อีกครั้งโดยการเรียกใช้OPTIMIZE TABLE tbl_nameแบบสอบถามใน MySQL Server ฉันตรวจสอบสิ่งนี้ครั้งเดียวและพบว่าหลังจากที่เรียกใช้แล้วการเข้าใช้ฐานข้อมูลครั้งต่อไปอาจใช้เวลานานอาจเนื่องมาจากการย้ายชิ้นส่วนหรือมากกว่านั้น แต่การเข้าชมครั้งต่อมาแสดงประสิทธิภาพเป็นอย่างมากฉันไม่แน่ใจว่า ด้วยการเพิ่มประสิทธิภาพหรือการเพิ่มประสิทธิภาพเพียงอย่างเดียวทำเคล็ดลับนี้ ผู้ใดสามารถชี้แนะฉันด้วยค่าความแตกต่างของประสิทธิภาพที่แท้จริงถ้าเป็นไปได้เพื่อที่ฉันจะได้สามารถทำงานต่อไปได้มากขึ้นเมื่อทำงานกับ MySQL กำลังได้รับแรงโน้มถ่วงในโครงการของเรา

3
แบบสอบถามเกี่ยวกับการรวมการปรับปรุงและการแทรกแบบสอบถามลงในแบบสอบถามเดียวใน mysql
ฉันต้องการติดตามประวัติของการเปลี่ยนแปลงสำหรับผู้ใช้ดังนั้นเมื่อใดก็ตามที่เขาเปลี่ยนโปรไฟล์ของฉันฉันจำเป็นต้องใช้ข้อมูลเก่าและเก็บไว้ในประวัติและอัปเดตด้วยข้อมูลใหม่ ฉันสามารถใช้selectเพื่อรับข้อมูลเก่าinsertประวัติและในที่สุดก็updateเปลี่ยนข้อมูล ฉันสามารถมีทั้งหมดเหล่านี้ในแบบสอบถามเดียวใน mysql โดยไม่ต้องใช้วิธีการเก็บทริกเกอร์ ฯลฯ .. เช่นใช้ล็อค ฯลฯ ถ้าให้ฉันตัวอย่างเล็ก ๆ
9 mysql 

3
ฉันใช้เครื่องมือเก็บข้อมูล MEMORY แต่ MySQL ยังคงเขียนลงในดิสก์ของฉัน…ทำไม
ฉันใช้MEMORY Engineสำหรับตารางทั้งหมดที่เกี่ยวข้องกับแบบสอบถาม MYSQL เฉพาะเนื่องจากความเร็วในการเข้าถึงเป็นสิ่งสำคัญยิ่งสำหรับโครงการของฉัน ด้วยเหตุผลบางอย่างฉันสังเกตว่าการเขียนดิสก์จำนวนมากยังคงเกิดขึ้น เป็นเพราะ Windows สลับแรมกับดิสก์หรือไม่ ฉันจะป้องกันไม่ให้เกิดเหตุการณ์เช่นนี้ได้อย่างไร แก้ไข: นี่คือตัวแปรทั่วโลกของฉัน: mysql> show global variables; +---------------------------------------------------+-------------------------------------------------------------------------------- ------------------------------+ | Variable_name | Value | +---------------------------------------------------+-------------------------------------------------------------------------------- ------------------------------+ | auto_increment_increment | 1 | | auto_increment_offset | 1 | | autocommit | ON | | automatic_sp_privileges | ON | | back_log | 50 | | …

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