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

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

3
ฐานข้อมูล MySQL ตรึงหลังจาก 'ใช้'
ฉันเพิ่งทำผิดค่อนข้างโง่และติดตั้ง Ubuntu ของฉันเสียหาย เพื่อแก้ไขมันฉันบูตกับซีดีสดและคัดลอกไฟล์ฐานข้อมูลไป อย่างไรก็ตามตอนนี้ฉันได้คัดลอกโฟลเดอร์จากการติดตั้งเก่าไปยังโฟลเดอร์ใหม่เมื่อใดก็ตามที่ฉันพิมพ์ "use database_name" มันก็ค้างในสิ่งนี้: mysql> use my_database_name; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A แล้วค้างโดยไม่ต้องให้เครื่อง
17 mysql  backup 

4
วิธีจัดการกับการออกแบบตารางด้วยคอลัมน์ตัวแปร
ฉันมีสถานการณ์การออกแบบตารางและเป็นประเภทที่ไม่ใช่ DBA ต้องการความคิดเห็นที่ปรับขนาดได้มากกว่า สมมติว่าคุณถูกขอให้บันทึกข้อมูลบ้านในพื้นที่เมืองใหญ่โดยเริ่มจากย่านเล็ก ๆ (บ้าน 200 หลัง) แต่ในที่สุดจะเติบโตเป็นบ้าน 5 แสนหลัง คุณจะต้องจัดเก็บข้อมูลพื้นฐาน: ID # (# ล็อตที่ไม่ซ้ำกันที่เราสามารถใช้เป็นดัชนีที่ไม่ซ้ำกัน), Addr, City, State, Zip ปรับตารางง่าย ๆ จะจัดการกับมัน แต่ในแต่ละปีคุณจะถูกขอให้บันทึกข้อมูลพิเศษเกี่ยวกับบ้านทั้งหมด - และข้อมูลอะไรจะเปลี่ยนแปลงในแต่ละปี ตัวอย่างเช่นในปีแรกคุณจะถูกขอให้บันทึกชื่อและนามสกุลของเจ้าของวิดีโอ ในปีที่สองคุณจะถูกขอให้เก็บนามสกุล แต่ดัมพ์วิดีโอสแควร์และเริ่มรวบรวมชื่อเจ้าของแทน สุดท้าย - ในแต่ละปีจำนวนคอลัมน์พิเศษจะเปลี่ยนไป อาจเริ่มต้นด้วย 2 คอลัมน์เพิ่มเติมจากนั้นไปที่ 6 ปีหน้าจากนั้นกลับไปที่ 2 ดังนั้นวิธีหนึ่งในตารางคือพยายามเพิ่มข้อมูลที่กำหนดเองเป็นคอลัมน์ในตารางบ้านเพื่อให้มีเพียงหนึ่งตาราง แต่ฉันมีสถานการณ์ที่มีคนวางตารางสำหรับสิ่งนี้เช่น: คอลัมน์ "House Table": ID, Addr, City, State, Zip - ด้วยหนึ่งแถวต่อบ้าน …

3
ผลกระทบของการเปลี่ยนโหมดความเข้ากันได้ใน SQL Server จาก 100 เป็น 110
ฉันมีฐานข้อมูลที่Mydatabaseสร้างขึ้นใน SQL Server 2008 R2 ฉันได้อัพเกรดเป็น SQL Server 2012 ฉันพยายามเรียกใช้แบบสอบถามด้านล่างเพื่อคำนวณเปอร์เซ็นต์ไทล์ select Distinct [KEY],PERCENTILE_CONT(0.25) within group(order by EachPrice) OVER(Partition By [KEY]) As Q1,PERCENTILE_CONT(0.50) within group(order by EachPrice) OVER(Partition By [KEY]) As Q2, PERCENTILE_CONT(0.75) within group(order by EachPrice) OVER(Partition By [KEY]) As Q3, PERCENTILE_CONT(1) within group(order by EachPrice) OVER(Partition By [KEY]) As …

3
PostgreSQL ความพร้อมใช้งาน / ความสามารถในการปรับขนาดสูงโดยใช้ HAProxy และ PGBouncer
ฉันมีเซิร์ฟเวอร์ PostgreSQL หลายเครื่องสำหรับเว็บแอปพลิเคชัน โดยทั่วไปแล้วจะเป็นทาสหลักและทาสหลายคนในโหมดฮอตสแตนบาย (การจำลองการส่งกระแสข้อมูลแบบอะซิงโครนัส) ฉันใช้ PGBouncer สำหรับการรวมการเชื่อมต่อ: หนึ่งอินสแตนซ์ที่ติดตั้งบนเซิร์ฟเวอร์ PG แต่ละตัว (พอร์ต 6432) เชื่อมต่อกับฐานข้อมูลบน localhost ฉันใช้โหมดกลุ่มธุรกรรม ในการโหลดการเชื่อมต่อแบบอ่านอย่างเดียวของฉันกับทาสฉันใช้ HAProxy (v1.5) กับ conf มากกว่าหรือน้อยกว่าเช่นนี้ listen pgsql_pool 0.0.0.0:10001 mode tcp option pgsql-check user ha balance roundrobin server master 10.0.0.1:6432 check backup server slave1 10.0.0.2:6432 check server slave2 10.0.0.3:6432 check server slave3 10.0.0.4:6432 check …

2
ความหมายของ tinyint (N) คืออะไร?
เมื่อเราใช้ความยาวอาร์กิวเมนต์กับชนิดข้อมูลตัวเลขเท่าที่ฉันรู้ว่าสิ่งนี้ระบุความกว้างของการแสดงผล ฉันพยายามต่อไปนี้: mysql> create table boolean_test (var1 boolean, var2 tinyint); Query OK, 0 rows affected (0.10 sec) mysql> show create table boolean_test; +--------------+------------------------- | Table | Create Table +--------------+------------------------- | boolean_test | CREATE TABLE `boolean_test` ( `var1` tinyint(1) DEFAULT NULL, `var2` tinyint(4) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 | +--------------+--------------------------- …

2
SQL Server: เราควรใช้ TCP หรือ Named Pipes หรือใช้ค่าเริ่มต้นหรือไม่
เมื่อเชื่อมต่อกับ SQL Server 2008 R2 จากแอปพลิเคชันไคลเอนต์. NET 4 บนเซิร์ฟเวอร์ที่แตกต่างกันใน LAN เดียวกันคุณสามารถตั้งค่าโปรโตคอลเครือข่ายที่แตกต่างกันสามแบบ: TCP ท่อที่มีชื่อ อย่าตั้งค่าใด ๆ ในสตริงการเชื่อมต่อและใช้ค่าเริ่มต้น แนวปฏิบัติที่ดีที่สุดคืออะไร? จะเลือกอะไรดี? ข้อมูลเพิ่มเติม: ทั้ง TCP และเนมไปป์มีการเปิดใช้งานทั้งบนเซิร์ฟเวอร์และไคลเอนต์ แอปพลิเคชันใช้การจำลองฐานข้อมูล ไคลเอ็นต์และเซิร์ฟเวอร์สื่อสารผ่าน LAN ที่รวดเร็ว เรากำลังตรวจสอบสิ่งนี้เพราะเรามีปัญหาการเชื่อมต่อและการหมดเวลาที่หายากและไม่จริง (แต่ไม่ว่าฉันต้องการรู้วิธีปฏิบัติที่ดีที่สุด) มีบทความเกี่ยวกับเรื่องนี้ใน MSDNแต่มันเป็นเรื่องทั่วไปและคลุมเครือ ไม่แนะนำหรือแนะนำสิ่งที่มีประโยชน์


6
ข้อผิดพลาด“ ช่วงเวลาหมดเวลาล็อคคำขอเกิน” เมื่อพยายามดูลำดับชั้นฐานข้อมูล
ฉันมีปัญหากับฐานข้อมูล ฉันสามารถเรียกใช้แบบสอบถามพื้นฐานแม้จะช้ากว่าปกติมาก เมื่อฉันพยายามที่จะดูต้นไม้ลำดับชั้นสำหรับตารางวิวหรือขั้นตอนใน SSMS วัตถุ Explorer lock request time out period exceededฉันได้รับ รายงาน SSRS ของฉันที่ทำงานกับวัตถุในฐานข้อมูลนี้ไม่เสร็จสมบูรณ์อีกต่อไป งานที่เกี่ยวข้องกับขั้นตอนการจัดเก็บในฐานข้อมูลนี้ยังไม่ได้ทำงาน ฉันพยายามใช้sp_who2เพื่อค้นหาและฆ่าการเชื่อมต่อทั้งหมดในฐานข้อมูลอย่างไรก็ตามวิธีนี้ไม่ได้แก้ปัญหา เกิดขึ้นที่นี่คืออะไร? ฉันจะแก้ไขปัญหานี้ได้อย่างไร

1
การค้นหาเวลาล่าสุดที่ตารางถูกอัพเดต
แบบสอบถาม: SELECT name AS TableName, create_date AS CreatedDate, modify_date as ModifyDate FROM sys.tables order by ModifyDate; ... จะบอกฉันว่าครั้งสุดท้ายที่มีการสร้างและแก้ไขตาราง (จากมุมมอง DDL) แต่ฉันต้องการทราบว่าข้อมูลจริงครั้งล่าสุดถูกแทรกหรือลบออกจากตาราง เป็นไปได้หรือไม่ที่จะได้รับสิ่งนี้ใน SQL Server

3
การลบระเบียนช้าเมื่อเปิดใช้งานทริกเกอร์
ความคิดนี้ได้รับการแก้ไขด้วยลิงก์ด้านล่าง - งานแก้ไข - แต่โปรแกรมแก้ไขไม่ได้ ทำงานกับฝ่ายสนับสนุนของ Microsoft เพื่อแก้ไขปัญหา http://support.microsoft.com/kb/2606883 ตกลงดังนั้นฉันมีปัญหาที่ฉันต้องการจะออกไป StackOverflow เพื่อดูว่ามีใครมีความคิด หมายเหตุนี่คือกับ SQL Server 2008 R2 ปัญหา: การลบ 3000 รายการจากตารางที่มีระเบียน 15000 รายการใช้เวลา 3-4 นาทีเมื่อเปิดใช้งานทริกเกอร์และเพียง 3-5 วินาทีเมื่อปิดการใช้งานทริกเกอร์ การตั้งค่าตาราง เราจะเรียกสองโต๊ะหลักและรอง มัธยมศึกษามีบันทึกรายการที่ฉันต้องการลบดังนั้นเมื่อฉันลบฉันเข้าร่วมในตารางรอง กระบวนการทำงานก่อนคำสั่งลบเพื่อเติมข้อมูลตารางรองที่มีระเบียนที่จะถูกลบ ลบคำชี้แจง: DELETE FROM MAIN WHERE ID IN ( SELECT Secondary.ValueInt1 FROM Secondary WHERE SECONDARY.GUID = '9FFD2C8DD3864EA7B78DA22B2ED572D7' ); ตารางนี้มีคอลัมน์จำนวนมากและดัชนี NC …

7
จะแสดงชื่อคอลัมน์ของตารางได้อย่างไร?
กรณีง่าย: คุณมีฐานข้อมูล MySQL ที่คุณมีเพียงส่วนติดต่อแบบสอบถาม SQL และคุณต้องการทราบโครงสร้างฐานข้อมูลด้วยแบบสอบถาม คุณสามารถแสดงรายการตารางด้วยshow tables;คำสั่ง แต่คุณจะเห็นชื่อคอลัมน์แต่ละรายการได้อย่างไร ( SELECTคำสั่งแสดงEmpty setว่าไม่มีข้อมูลใดและไม่สามารถใช้งานได้)
17 mysql 

6
วิธีการวางหลายตารางด้วยคำนำหน้าทั่วไปในหนึ่งแบบสอบถาม?
ฉันใช้ Microsoft SQL Server 2008 คำถามของฉันคือ: จะวางหลายตารางด้วยคำนำหน้าทั่วไปในการค้นหาเดียวได้อย่างไร ชื่อตารางนั้น: LG_001_01_STLINE, LG_001_02_STFICHE

3
มีประสิทธิภาพมากขึ้นคืออะไรส่วนคำสั่งหรือการรวมกับตารางล้านบวกแถว?
เราเรียกใช้เว็บไซต์ที่มีแถว 250 มม. ในหนึ่งตารางและในอีกตารางหนึ่งที่เราเข้าร่วมเพื่อการค้นหาส่วนใหญ่จะมีแถวที่ต่ำกว่า 15 มม. โครงสร้างตัวอย่าง: MasterTable (Id, UserId, Created, Updated...) -- 15MM Rows DetailsTable (Id, MasterId, SomeColumn...) -- 250MM Rows UserTable (Id, Role, Created, UserName...) -- 12K Rows เราต้องทำแบบสอบถามสองสามข้อกับตารางเหล่านี้เป็นประจำ หนึ่งคือสถิติโลภสำหรับผู้ใช้ฟรี (ผู้ใช้ฟรี ~ 10k) Select Count(1) from DetailsTable dt join MasterTable mt on mt.Id = dt.MasterId join UserTable ut …

4
เหตุใดแบบสอบถามนี้จึงช้าลงอย่างมากเมื่อรวมไว้ใน TVF
ฉันมีคิวรีที่ค่อนข้างซับซ้อนซึ่งทำงานในเวลาเพียงไม่กี่วินาทีด้วยตัวเอง แต่เมื่อรวมกับฟังก์ชันที่มีค่าเป็นตารางมันจะช้ากว่ามาก ฉันไม่ได้ปล่อยให้มันจบ แต่มันวิ่งไปสิบนาทีโดยไม่จบ การเปลี่ยนแปลงเพียงอย่างเดียวคือการแทนที่ตัวแปรวันที่สองตัว (เริ่มต้นด้วยตัวอักษรวันที่) ด้วยพารามิเตอร์วันที่: ทำงานในเจ็ดวินาที DECLARE @StartDate DATE = '2011-05-21' DECLARE @EndDate DATE = '2011-05-23' DECLARE @Data TABLE (...) INSERT INTO @Data(...) SELECT... SELECT * FROM @Data ทำงานอย่างน้อยสิบนาที CREATE FUNCTION X (@StartDate DATE, @EndDate DATE) RETURNS TABLE AS RETURN SELECT ... SELECT * FROM X ('2011-05-21', '2011-05-23') …

3
mysqldump vs mysqlpump
ฉันเพิ่งได้ยินเกี่ยวกับmysqlpump - ดูเหมือนว่ามันจะวางจำหน่ายกับ MySQL 5.7 แต่ MySQL 5.7 ยังคงมีmysqldumpอยู่ ทั้งคู่เป็นโปรแกรมสำรองข้อมูล แต่ทุกคนสามารถสรุปความแตกต่างหลักได้หรือไม่ มีสถานการณ์ที่หนึ่งในนั้นอาจทำงานได้ดีขึ้นหรือไม่ mysqldump กำลังจะถูกยกเลิกสำหรับ mysqlpump หรือไม่?

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