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

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


4
ปล่อยข้อ จำกัด (ดัชนี) บนคอลัมน์
ฉันจะแก้ไขประเภทในตารางที่มีดัชนีอยู่ได้อย่างไร ฉันพยายามที่จะแก้ไขคอลัมน์ในตารางว่างเปล่าเพื่อแก้ไขประเภทจากวันที่เป็น varchar (15) และมีข้อผิดพลาดที่บอกว่ามีการพึ่งพาคอลัมน์ (ซึ่งกลายเป็นดัชนี) ฉันสามารถไปที่จุดนี้ได้อย่างง่ายดายด้วยการคลิกขวาที่ดัชนีและวางสคริปต์ แต่ฉันจำเป็นต้องทำสิ่งนี้บนเซิร์ฟเวอร์อื่น ๆ ที่ฉันจะไม่สามารถเข้าถึงชื่อดัชนีได้ มีวิธีที่ฉันสามารถสร้างสคริปต์ที่จะวางดัชนีใด ๆ ให้ฉันทำประเภทข้อมูลที่เปลี่ยนแปลงในคอลัมน์แล้วอ่านดัชนีหรือไม่ ขอบคุณ!

4
ควรใช้ประเภทข้อมูล XML เมื่อใด
ฉันรับผิดชอบในการสร้างฐานข้อมูลในโครงการ เรามีสาขาที่ไม่ค่อยมีค่า (1 ในทุก ๆ 10,000 เรคคอร์ด) และฉันพยายามหาวิธีที่ดีที่สุดในการจัดเก็บในฐานข้อมูล เท่าที่ฉันเห็นฉันมี 3 ตัวเลือก: เพิ่มคอลัมน์ในตารางสำหรับแต่ละค่าพิเศษ เพิ่มตารางที่เชื่อมโยงซึ่งอ้างอิงถึงตารางต้นฉบับและมีการบันทึกเฉพาะที่เราจำเป็นต้องเก็บค่า ใช้ชนิดข้อมูล XML ในตารางต้นฉบับและเก็บค่าทั้งหมดในนี้ มีตัวเลือกอื่น ๆ ที่ฉันไม่ได้พิจารณาหรือไม่? ฉันพยายามหาข้อดีข้อเสียของแต่ละวิธี เท่าที่ฉันสามารถบอกได้ว่า 1 จะเป็นวิธีที่ง่ายที่สุดและ 2 จะใช้พื้นที่น้อยที่สุด แต่ฉันพยายามหาแหล่งข้อมูลจำนวนมากสำหรับ 3 คน


3
ดัชนีมีผลต่อประสิทธิภาพการค้นหาอย่างไร
เห็นได้ชัดว่าการรักษาดัชนีที่แตกต่างกันหลายประการมีผลกระทบด้านลบต่อประสิทธิภาพการแทรกและลบ แล้วประสิทธิภาพของคิวรี: มันสมเหตุสมผลหรือไม่ที่ทำให้ดัชนีมีจำนวนมากเกินไปในตาราง? ประสิทธิภาพของแบบสอบถามจะดีขึ้นในทุกกรณีเมื่อมีการเพิ่มดัชนี (แน่นอนสำหรับแบบสอบถามที่ใช้ดัชนีเลย) หรือเป็นไปได้ว่าประสิทธิภาพของแบบสอบถามจะลดลงด้วยดัชนีมากเกินไปเพราะจำเป็นต้องปรึกษาดัชนีทั้งหมดเพื่อรับ ผลลัพธ์? ในกรณีที่มีดัชนีแตกต่างกันในตาราง: พวกเขาทั้งหมดจะได้รับการพิจารณาหรือเฉพาะที่ดีที่สุดจากมุมมองของเครื่องมือเพิ่มประสิทธิภาพ? ออราเคิลใช้ดัชนีหลายมิติหรือไม่?

3
การดำเนินการตามคำขอเดียวกันจาก C # VS SSMS ให้เวลาดำเนินการที่แตกต่างกัน
ฉันมีคำขอเช่นนี้ SELECT [EstimateId], [CreationUserId], [EstimateStatusValueId], [LanguageId], [LocationId], [EstimatorUserId], [FilterUnitSystemTypeId], [EstimateNumber], [RevisionNumber], [CreationDate], [ModificationDate], [ProjectDescription], [IsBsdq], [ClosingDate], [ClosingTime], [ClosingUpdatedOn], [DeadLineDate], [IsReceived], [Inclusion], [Exclusion], [Misc], [Note], [WorkDeadLines], [Comments], [Validity], [PlansLocation], [PlansReceivedFrom], [Price] FROM [Estimate].[Estimates] ORDER BY [ClosingDate] ASC, [ClosingTime] ASC เมื่อฉันเรียกใช้แบบสอบถามนี้ใน SSMS ฉันได้รับเวลาดำเนินการ 953ms แต่เมื่อฉันเรียกใช้แบบสอบถามนี้จากแบบสอบถาม Linq ใน C # ของฉันฉันได้รับเวลาดำเนินการ 1813ms The …

3
การติดตามการดีบักและการแก้ไขข้อขัดแย้งของ Row Lock
ดึกฉันได้รับการโต้เถียงกันมากเกี่ยวกับการล็อกแถว ดูเหมือนว่าตารางในการช่วงชิงจะเป็นตารางเฉพาะ นี่คือสิ่งที่เกิดขึ้นโดยทั่วไป - นักพัฒนา 1 เริ่มทำธุรกรรมจากหน้าจอส่วนหน้าของ Oracle Forms นักพัฒนา 2 เริ่มทำธุรกรรมอื่นจากเซสชันที่ต่างกันโดยใช้หน้าจอเดียวกัน ~ 5 นาทีในส่วนหน้าดูเหมือนว่าไม่ตอบสนอง การตรวจสอบเซสชันแสดงการช่วงชิงล็อกแถว "ทางออก" ที่ทุกคนขว้างไปรอบ ๆ คือฆ่าช่วง: / เป็นผู้พัฒนาฐานข้อมูล สิ่งใดที่สามารถทำได้เพื่อกำจัดข้อขัดแย้งในการล็อกแถว เป็นไปได้ไหมที่จะพบว่าบรรทัดของโพรซีเดอร์ที่เก็บไว้ก่อให้เกิดข้อขัดแย้งในการล็อกแถวเหล่านี้หรือไม่ อะไรคือแนวทางทั่วไปในการลด / หลีกเลี่ยง / กำจัดปัญหาดังกล่าวซึ่งเป็นรหัส? หากคำถามนี้รู้สึกว่าข้อมูลปลายเปิด / ไม่เพียงพอโปรดแก้ไข / แจ้งให้เราทราบ - ฉันจะพยายามอย่างดีที่สุดเพื่อเพิ่มข้อมูลเพิ่มเติม ตารางที่มีปัญหาอยู่ในส่วนแทรกและอัปเดตจำนวนมากฉันขอบอกว่าเป็นหนึ่งในตารางที่ยุ่งที่สุด SP ค่อนข้างซับซ้อน - เพื่อทำให้ง่ายขึ้น - มันดึงข้อมูลจากตารางต่าง ๆ ใส่เข้าไปในตารางงานการดำเนินการทางคณิตศาสตร์จำนวนมากเกิดขึ้นบนโต๊ะทำงานและผลลัพธ์ของตารางงานถูกแทรก / อัปเดตลงในตารางที่เป็นปัญหา เวอร์ชันฐานข้อมูลคือ Oracle Database …

4
การติดตั้ง MySQL Tables เริ่มต้นใน Windows (mysql_install_db)
ใน Linux ตาราง MySQL อนุญาตเริ่มต้นสามารถสร้างด้วยmysql_install_dbสคริปต์ได้ แต่ใช้ไม่ได้กับ Windows ตารางการให้สิทธิ์เริ่มต้นสามารถติดตั้งบน Windows ได้อย่างไร (ไม่ฉันไม่ต้องการคำตอบที่ว่าผลลัพธ์ของ Google นั้นเต็มไปด้วยวิธีการติดตั้งบน Windows โดยอัตโนมัติเพราะนั่นเป็นเพียงกรณีที่มีการกระจายตัวติดตั้งไม่ใช่แพ็คเกจ ZIP นอกจากนี้ไม่ได้ช่วยอะไร ติดตั้ง MySQL และไดเรกทอรีข้อมูลเสียหายหรือถูกแทนที่หรือเช่นนั้น)

2
Postgresql 8.3: จำกัด การใช้ทรัพยากรต่อแบบสอบถาม
ฉันใช้PostgreSQL 8.3 + PostGIS 1.3ในการจัดเก็บข้อมูลเชิงพื้นที่ในอูบุนตู 8.04 Hardy PostGIS รุ่นนี้มีข้อผิดพลาดเมื่อทำการคำนวณbuffer()บนเซ็กเมนต์ที่ซับซ้อนมากซึ่งทำให้เคียวรีใช้หน่วยความจำมากขึ้นเรื่อย ๆ จนกว่าเครื่องทั้งหมดจะติด ฉันกำลังมองหากลไก PostgreSQL ที่สามารถ: จำกัด การใช้หน่วยความจำ (และอาจเป็นทรัพยากรอื่น ๆ ) ที่ใช้โดยแบบสอบถามที่เฉพาะเจาะจง หยุดคิวรีที่มีเวลาดำเนินการเกินเกณฑ์ที่กำหนดโดยอัตโนมัติ ความคิดใด ๆ

3
วิธีการนำเอนทิตีไปใช้ด้วยจำนวนแอตทริบิวต์สูงสุดที่ไม่รู้จัก?
ฉันกำลังออกแบบโปรแกรมจำลองเบสบอลและฉันพบปัญหาในการออกแบบสคีบ็อกซ์ ปัญหาที่ฉันมีคือฉันต้องการติดตามจำนวนการทำคะแนนในแต่ละโอกาส วิธีที่ฉันทำในโปรแกรมจริงคือการใช้อาร์เรย์แบบไดนามิกที่เพิ่มขึ้นสำหรับการเล่นแต่ละโอกาส สำหรับผู้ที่ไม่คุ้นเคยกับเกมเบสบอลเกมมักจะมีเก้าโอกาสนานเว้นแต่เกมจะถูกผูกไว้เมื่อสิ้นสุดโอกาสที่ 9 เกมเบสบอลจึงมีความยาวไม่บึกบึนซึ่งหมายความว่าฉันไม่สามารถออกแบบฐานข้อมูลให้มีเพียง 9 คอลัมน์สำหรับการวิ่งที่ทำคะแนนในแต่ละโอกาส (ในทางเทคนิค 18 (9-9 อินนิ่ง * 2 ทีม) แนวคิดหนึ่งที่ฉันมีคือทำให้อนุกรมอาร์เรย์ และเข้ารหัสเป็น Base64 ก่อนเก็บไว้ในฐานข้อมูลอย่างไรก็ตามฉันไม่รู้ว่านี่เป็นเทคนิคที่ดีในการใช้หรือไม่และฉันสงสัยว่าใครมีความคิดที่ดีกว่า ในกรณีที่มีความสำคัญฐานข้อมูลที่ฉันกำลังพัฒนาคือ PostgreSQL ข้อเสนอแนะใด ๆ ที่ชื่นชมอย่างมาก! ขอบคุณ!


2
เหตุใดเราจึงจำเป็นต้องสำรองข้อมูลบันทึก Oracle ให้พร้อมกับ datafiles
พื้นฐานการสำรองและกู้คืนฐานข้อมูลOracle® 10g Release 2 (10.2) บอกว่า บันทึกการทำซ้ำที่เก็บถาวรเป็นกุญแจสำคัญในการกู้คืนสื่อที่ประสบความสำเร็จ สำรองข้อมูลเหล่านั้นเป็นประจำ แต่ฉันสงสัยว่าทำไมการสำรองข้อมูลบันทึกถาวรจึงมีความสำคัญ เป็นไปได้ไหมที่จะทำการกู้คืนข้อมูล ณ จุดเวลาโดยใช้การสำรองข้อมูล RMAN แบบเต็มและแบบเพิ่มหน่วยข้อมูลปกติ
12 oracle  backup  rman 

3
ชนิดข้อมูล MySQL สำหรับจำนวนเต็ม 128 บิต
ฉันต้องการจัดเก็บจำนวนเต็ม 128 บิตที่ไม่มีเครื่องหมายใน MySQL และฉันสงสัยว่าประเภทข้อมูลที่ดีที่สุดในการจัดเก็บจำนวนมากนั้นคืออะไร ตอนนี้ผมใช้แต่ที่เกี่ยวข้องกับหลายฟังก์ชั่นแปลงbinary(16)pack(/huge number in hex .../) มีประเภทข้อมูลที่ดีที่สุดในการจัดเก็บจำนวนเต็ม 128 บิตที่ไม่ได้ลงชื่อ?
12 mysql  datatypes 

2
SQL Server 2008 - ประสิทธิภาพของฐานข้อมูลข้ามบนเครื่องจริงและอินสแตนซ์เซิร์ฟเวอร์เดียวกัน
มีประสิทธิภาพในการทำงานเมื่อทำการเลือกทั่วทั้งฐานข้อมูลอื่นบนเครื่องจริงหรือไม่? ดังนั้นฉันจึงมี 2 ฐานข้อมูลในเครื่องทางกายภาพเดียวกันที่ทำงานภายในอินสแตนซ์ SQL 2008 เดียวกัน ตัวอย่างเช่นใน SomStoreProc on_this_db ฉันเรียกใช้ SELECT someFields จาก the_other_db.dbo.someTable ไกลจากสิ่งที่ฉันได้อ่านบนอินเทอร์เน็ตคนส่วนใหญ่ดูเหมือนจะบ่งบอกว่าไม่มี

2
ข้อ จำกัด ที่ไม่ซ้ำกันในคอลัมน์ Nullable ใน SQL Server 2005
ในโครงการหนึ่งที่ฉันกำลังดำเนินการอยู่ฉันต้องตั้งค่าเขตข้อมูลเฉพาะให้ไม่ซ้ำกัน (ไม่ใช่ปัญหา!) แต่ถ้าเขตข้อมูลเป็นโมฆะฉันต้องการให้ข้อ จำกัด ถูกละเว้น ใน SQL Server 2008 ฉันใช้ดัชนีตัวกรองตามที่แสดงด้านล่าง แต่ไม่มีใน SQL เวอร์ชันก่อนหน้านี้! CREATE UNIQUE NONCLUSTERED INDEX User_UserName_IUC ON [User] (pinNr) WHERE UserName IS NOT NULL แต่ฉันไม่คิดว่ามันมีอยู่ใน SQL Server 2005 จริงๆแล้วโพสต์บล็อกนี้ระบุว่ามีวิธีแก้ไขปัญหาโดยใช้ทริกเกอร์เพื่อตรวจสอบความไม่ซ้ำ ใครบ้างมีตัวอย่างของสิ่งนี้? หรืออาจเป็นทางเลือก? น่าเสียดายที่การอัปเกรดเป็น SQl Server 2008 ไม่ใช่ตัวเลือกสำหรับลูกค้ารายนี้ !!

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