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

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

2
mysql.proc หยุดทำงานไม่สามารถทำ mysqldump ได้หรือไม่?
เนื่องจากปัญหาบางอย่างกับ InnoDB ฉันจะถ่ายโอนฐานข้อมูลทั้งหมดไปยังเซิร์ฟเวอร์ใหม่: mysqldump -E -R --all-databases | pv -b | mysql -u root -p -h new.server กระบวนการดัมพ์หยุดทำงานโดยมีข้อผิดพลาด: 59.9kB assword: 59.9kB ERROR 145 (HY000) at line 2970: Table './mysql/proc' is marked as crashed and should be repaired 228MB mysqldump: Got errno 32 on write ฉันใช้คำสั่งต่อไปนี้เพื่อซ่อมแซมตารางทั้งหมดในฐานข้อมูลทั้งหมด: mysqlcheck --auto-repair --all-databases เมื่อฉันตรวจสอบmysql.procสถานะฉันจะได้รับ: mysql> …

4
สิ่งที่สามารถเพิ่มความเร็วคิวรีแบบสอบถาม SQL?
เมื่อทำการสอบถาม SQL นับ (รวม) สิ่งที่สามารถเพิ่มความเร็วเวลาการดำเนินการในระบบฐานข้อมูล 3 เหล่านี้? ฉันแน่ใจว่าหลายสิ่งหลายอย่างสามารถเร่งความเร็วได้ (ฮาร์ดแวร์สำหรับหนึ่งชิ้น) แต่ฉันเพิ่งเป็นสามเณร DBA ดังนั้นฉันแน่ใจว่าฉันจะได้รับคำตอบที่นี่ ฉันโยกย้ายประมาณ 157 ล้านแถวไปยังฐานข้อมูล SQL Server และแบบสอบถามนี้ใช้เวลานาน แต่ในฐานข้อมูล Netezza ต้นทางของฉันมันใช้เวลาไม่กี่วินาที ตัวอย่างเช่น: เนเตซซ่า 6: SELECT COUNT(*) FROM DATABASENAME..MYTABLE Oracle 11g: SELECT COUNT(*) FROM MYTABLE SQL Server 2012: SELECT COUNT(*) FROM DATABASENAME.[dbo].[MYTABLE]


1
การเรียกใช้งานสคริปต์ TSQL ที่สร้างจาก SSMS ใน SQLCMD ล้มเหลวในการพูด
ฉันกำลังพยายามปรับใช้ฐานข้อมูลกับเครื่องโดยการเรียกใช้งานสคริปต์ที่สร้างขึ้นโดยเครื่องมือ "สร้างสคริปต์" ใน SQL Server Management Studio นี่คือคำสั่งที่ฉันออก: sqlcmd -S LOCALHOST\sqlexpress -I -U user -P ******** -i C:\Rollouts\NI-9-25-2012_10-42-AM\Rollout.sql > rolloutlog.txt ฉันได้รับข้อผิดพลาดเช่นนี้: Sqlcmd: ข้อผิดพลาด: ข้อผิดพลาดทางไวยากรณ์ที่บรรทัด 39488 ใกล้กับคำสั่ง '' 'ในไฟล์' C: \ Rollouts \ NI-9-25-2012_10-42-AM \ Rollout.sql ' เมื่อฉันดูบรรทัดนี้ด้วยโปรแกรมแก้ไขข้อความสัญญาณทั้งหมดชี้ไปที่ปัญหาด้วยเครื่องหมายคำพูด บรรทัดคำถามมีลักษณะดังนี้: $ ( '' แมวเมนูใหม่. '') slideDown ( '' ช้า ''). มีสวิตช์ที่ฉันควรเรียกใช้งานหรือสร้างสคริปต์ด้วยเพื่อสนับสนุนเครื่องหมายคำพูดภายในสคริปต์หรือไม่

1
MySQL: เพิ่มประสิทธิภาพยูเนี่ยนด้วย“ ORDER BY” ในการค้นหาภายใน
ฉันเพิ่งตั้งค่าระบบบันทึกซึ่งประกอบด้วยหลายตารางที่มีเค้าโครงเดียวกัน มีตารางหนึ่งตารางสำหรับแหล่งข้อมูลแต่ละแหล่ง สำหรับโปรแกรมดูบันทึกฉันต้องการ ยูเนี่ยนทุกตารางบันทึก , กรองพวกเขาโดยการบัญชี , เพิ่มคอลัมน์หลอกสำหรับการระบุแหล่งที่มา เรียงพวกเขาโดยเวลา , และจำกัด พวกเขาสำหรับการแบ่งหน้า ตารางทั้งหมดมีเขตข้อมูลที่เรียกzeitpunktว่าเป็นคอลัมน์วันที่ / เวลาที่จัดทำดัชนี ความพยายามครั้งแรกของฉันคือ: (SELECT l.id, l.account_id, l.vnum, l.count, l.preis, l.zeitpunkt AS zeit, 'hp' AS source FROM is_log AS l WHERE l.account_id = 730) UNION (SELECT l.id, l.account_id, l.vnum, l.count, l.preis, l.zeitpunkt, 'ig' AS source FROM ig_is_log AS …

1
การเชื่อมต่อเครื่องมือไคลเอ็นต์การตั้งค่า SQL Server 2008 R2
ระหว่างการตั้งค่า SQL Server 2008 R2 ฉันเห็นช่องทำเครื่องหมายสำหรับตัวเลือกการติดตั้ง "เครื่องมือเชื่อมต่อลูกค้า" และ "เครื่องมือในการเข้ากันได้ของไคลเอ็นต์ย้อนหลัง" มันบอกว่าสิ่งเหล่านี้เป็นส่วนประกอบสำหรับการสื่อสารเซิร์ฟเวอร์ของลูกค้า ใครสามารถอธิบายองค์ประกอบเหล่านี้ได้บ้าง สิ่งที่ติดตั้งบนเซิร์ฟเวอร์จริงเมื่อคุณเลือกส่วนประกอบเหล่านี้

1
ตำแหน่งที่เหมาะสมที่สุดของไฟล์ tempdb, mdf และ ldf ใน SQL Server 2012 บน SSD หรือไม่
ฉันรู้ว่านี่อาจเป็นคำถามสิ้นสุดที่เปิดกว้างและคำตอบอาจแตกต่างกันไป แต่ตำแหน่งที่เหมาะสมที่สุดสำหรับไฟล์ tempdb, mdf และ ldf ใน SQL Server 2012 เมื่อพูดถึง SSD คืออะไร การซื้อล่วงหน้าใหม่ฉันมี SSD ที่มีอยู่ซึ่งมีไฟล์หลักของ SQL Server 2012 และ tempdb ติดตั้งอยู่และมีทั้ง mdf / ldf บน HDD 7200 รอบต่อนาที จากนั้นฉันก็ซื้อ SSD 2 ตัวโดยมีเจตนาดั้งเดิมที่จะวาง mdf ลงบนหนึ่ง ldf และใส่อีกอันหนึ่ง แต่จากการอ่านเพิ่มเติมดิสก์แยกทางกายภาพสำหรับไฟล์ mdf และ ldf ไม่ได้นำมาใช้จริง ๆ กับ SSD แก้ไข? ดังนั้นฉันคิดต่อไปนี้: SSD 1 - …

1
ความปลอดภัยระดับคอลัมน์
ฉันต้องการโซลูชันเพื่อซ่อนคอลัมน์เฉพาะในตาราง เรามีผู้ที่ต้องการสร้างรายงานจากฐานข้อมูลนี้และเฉพาะบางส่วนของตารางเหล่านี้ด้วยข้อมูลที่เป็นความลับ แต่ไม่ได้รับอนุญาตให้ดูรายการเช่นเงินเดือนหรือ ssn เป็นไปได้หรือไม่ที่จะกรองคอลัมน์เฉพาะสำหรับผู้ใช้

4
PostgreSQL: การเปลี่ยนรหัสผ่านสำหรับผู้ใช้ไม่ทำงาน
ฉันติดตั้งPostgreSQLบนEC2เครื่องและตอนนี้ฉันต้องการเปลี่ยนรหัสผ่านของผู้ใช้postgres ฉันทำ $ sudo -u postgres psql psql (9.1.5) Type "help" for help. postgres=# ALTER USER postgres WITH PASSWORD 'newpasswd'; ALTER ROLE จากนั้นฉันออกจากเชลล์และลองเข้าสู่ระบบด้วยรหัสผ่านใหม่ $ psql -U postgres -W Password for user postgres: psql: FATAL: Peer authentication failed for user "postgres" PostgreSQLรุ่นของฉันคือ $ psql --version psql (PostgreSQL) 9.1.5 contains support for …

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

3
ฉันควรใช้อะไร สตริงหรือจำนวนเต็ม 15 ฟิลด์?
ฉันกำลังพัฒนาโปรแกรมติดตามนักเรียนที่ฉันต้องเก็บคะแนนการสอบ 15 ข้อ ฉันสามารถเก็บเครื่องหมายเป็นสตริงและแยกออกเมื่อฉันต้องการเพื่อวัตถุประสงค์เช่นการดำเนินการเกี่ยวกับคณิตศาสตร์ อย่างไรก็ตามฉันต้องการประสิทธิภาพมากที่สุด ไหนดีกว่ากัน เขตข้อมูลสตริงเดียวหรือ 15 แต่ละเขตข้อมูล int?

3
วิธีการเชื่อมต่อครั้งเดียวสำหรับแบบสอบถามทั้งหมดใน SQL Server Management Studio?
SSMS ขอให้ฉันเชื่อมต่อทุกแบบสอบถามในโครงการของฉัน มีวิธีการเชื่อมต่อเพียงครั้งเดียวต่อการเชื่อมต่อสำหรับแบบสอบถามทั้งหมดที่ใช้ในโครงการของฉันหรือไม่ คำตอบด้านล่าง (มีนาคม 2014) ไม่ตอบคำถาม ยังคงมองหาวิธีการแก้ปัญหา

1
วิธีเพิ่มประสิทธิภาพการค้นหา
ฉันมีโครงสร้างฐานข้อมูลคล้ายกับสิ่งนี้ CREATE TABLE [dbo].[Dispatch]( [DispatchId] [int] NOT NULL, [ContractId] [int] NOT NULL, [DispatchDescription] [nvarchar](50) NOT NULL, CONSTRAINT [PK_Dispatch] PRIMARY KEY CLUSTERED ( [DispatchId] ASC, [ContractId] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO CREATE TABLE …

1
OPTION FORCE ORDER ปรับปรุงประสิทธิภาพจนกว่าแถวจะถูกลบ
ฉันมีแบบสอบถาม SQL Server 2008 ที่ค่อนข้างซับซ้อน (ประมาณ 200 บรรทัดของ SQL ที่มีความหนาแน่นพอสมควร) ซึ่งไม่ทำงานตามที่ฉันต้องการ เมื่อเวลาผ่านไปประสิทธิภาพจะลดลงจากประมาณ 0.5 วินาทีเป็นประมาณ 2 วินาที ดูที่แผนการดำเนินการมันค่อนข้างชัดเจนว่าการเรียงลำดับตัวเชื่อมใหม่จะทำให้ประสิทธิภาพดีขึ้น ฉันทำและมันลงไปถึงประมาณ 3 วินาที ตอนนี้แบบสอบถามมีคำแนะนำ "คำสั่งตัวเลือกการบังคับ"และชีวิตเป็นสิ่งที่ดี ตามมาด้วยฉันวันนี้ล้างฐานข้อมูล ฉันเก็บประมาณ 20% ของแถวที่จะดำเนินการในฐานข้อมูลที่เกี่ยวข้องอื่นใดนอกจากการลบแถว ... แผนปฏิบัติการที่ได้รับการทยอย มันผิดทั้งหมดจำนวนแถวย่อยบางอย่างจะกลับมาและ (ตัวอย่าง) แทนที่ a: <Hash> กับ <NestedLoops Optimized='false' WithUnorderedPrefetch='true'> ในขณะนี้เวลาของแบบสอบถามเริ่มจากประมาณ. 3 ถึงประมาณ 18 วินาที (!) เพียงเพราะฉันลบแถว หากฉันลบคำใบ้คำค้นหาฉันกลับไปใช้เวลาสอบถามข้อมูลประมาณ 2 วินาที ดีกว่า แต่แย่กว่านั้น ฉันได้ทำซ้ำปัญหาหลังจากกู้คืนฐานข้อมูลไปยังสถานที่และเซิร์ฟเวอร์หลายแห่ง …

1
การเข้าสู่ระบบล้มเหลวสำหรับผู้ใช้ 'NT AUTHORITY \ ANONYMOUS เข้าสู่ระบบ' (MsDtsSrvr)
ฉันมีสภาพแวดล้อมแบบคลัสเตอร์ซึ่งมีอินสแตนซ์จำนวนมากอยู่ในนั้น ฉันได้แก้ไขไฟล์ xml เพื่ออนุญาตให้หลาย ๆ อินสแตนซ์ใช้ ssis ทุกอย่างทำงานได้ดีเมื่ออินสแตนซ์อยู่บนโหนดเดียวกันกับ ssis ที่ทำคลัสเตอร์ อย่างไรก็ตามหากพวกเขาอยู่ในโหนดที่แตกต่างกันดูเหมือนว่าจะมีปัญหาการตรวจสอบและสูญเสียข้อมูลประจำตัวของฉัน ด้วยเหตุผลบางอย่างมันพยายามใช้การเข้าสู่ระบบแบบไม่ระบุชื่อแทน นี่คือข้อผิดพลาดแบบเต็ม: เซิร์ฟเวอร์ SQL ที่ระบุในการกำหนดค่าบริการ SSIS ไม่มีอยู่หรือไม่พร้อมใช้งาน สิ่งนี้อาจเกิดขึ้นเมื่อไม่มีอินสแตนซ์เริ่มต้นของ SQL Server บนคอมพิวเตอร์ สำหรับข้อมูลเพิ่มเติมดูหัวข้อ "การกำหนดค่าบริการการรวมบริการ" ใน Server 2005 Books Online การเข้าสู่ระบบล้มเหลวสำหรับผู้ใช้ 'NT AUTHORITY \ ANONYMOUS เข้าสู่ระบบ' (MsDtsSrvr) ฉันขอขอบคุณทุกคนที่ช่วยในปัญหานี้ ขอบคุณ

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