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

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

3
การบำรุงรักษาบันทึกธุรกรรมเมื่อเปลี่ยนเป็นการกู้คืนแบบง่าย
พื้นหลัง: ฉันเพิ่งสืบทอดเซิร์ฟเวอร์ SQL มากกว่า 50+ พร้อมฐานข้อมูล 450+ การสำรองข้อมูลทุกคืนมีขนาดประมาณ 8TB และไม่จำเป็นต้องบอกว่าเราใช้พื้นที่ดิสก์มากกว่าที่เราต้องการ ฐานข้อมูลทั้งหมดถูกตั้งค่าเป็นการกู้คืนแบบเต็มและล็อกธุรกรรมไม่เคยถูกสำรอง ฉันได้ผ่าน SQL Server ทั้งหมดและระบุลำดับความสำคัญต่ำที่ต้องสำรองข้อมูลทุกคืนและยอมรับว่าข้อมูลสูญหายได้ทุกวัน คำถาม: ฉันเปลี่ยนฐานข้อมูลที่มีลำดับความสำคัญต่ำมาเป็นSIMPLEโหมดการกู้คืนจากจำนวนFULLมาก บันทึกธุรกรรมที่มีอยู่จะถูกตัดทอนหรือไม่ (เมื่อสร้างจุดตรวจ)? บันทึกธุรกรรมบางรายการที่มีอยู่คือ 50-100GB อะไรคือวิธีที่ดีที่สุดในการพิจารณาสิ่งที่ฉันควรย่อให้เป็นเพื่อวัตถุประสงค์ในการก้าวไปข้างหน้า เห็นได้ชัดว่าฉันไม่ต้องการให้พวกเขามีขนาดใหญ่ หรือพวกเขาจะหดตัวเมื่อเวลาผ่านไป (ฉันไม่คิดว่าพวกเขาจะ)?

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

4
คืนค่าเกินขีด จำกัด สิทธิ์การใช้งาน 10240 MB ต่อฐานข้อมูล สิ่งที่ฉันต้องการจริงๆคือโครงสร้าง DB
ฉันได้รับไฟล์. bak จากลูกค้าที่ฉันต้องการกู้คืน แต่การคืนค่าเกินขีด จำกัด ลิขสิทธิ์ของ SQL Server 2008 R2 10240 MB ต่อฐานข้อมูล สิ่งที่ฉันต้องการจริงๆคือโครงสร้าง DB มีวิธีในการคืนค่าหรือสำหรับฉันเพียงแค่คืนค่าโครงสร้างหรือไม่

3
จะเริ่มต้น / ปิด Oracle 11 ได้อย่างรวดเร็วได้อย่างไร
ฉันสงสัยว่าวิธีใดที่เร็วที่สุดในการเริ่ม / ปิด Oracle DB daemon อย่างเหมาะสม (Oracle 11.2 ติดตั้งบนเครื่องทดสอบ) ฉันต้องการมันสำหรับโปรแกรม C / C ++ ที่ใช้ OCI / Pro * C API ฉันต้องการสิ่งนี้เพราะฉันคุ้นเคยกับความเร็วในการเริ่มต้นของ PostgreSQL และเพราะ daemon ทำงานในเครื่องเสมือนที่เริ่มต้นเท่านั้น (ตามความต้องการ) สำหรับกรณีทดสอบ ขณะนี้ฉันสคริปต์แบบนี้ - เริ่มต้น: sqlplus /nolog <<EOF connect / as sysdba startup quit EOF lsnrctl start emctl start dbconsole และปิดเครื่อง: emctl stop …

2
ค้นหาแถวพาเรนต์ที่มีชุดของแถวลูกที่เหมือนกัน
สมมติว่าฉันมีโครงสร้างเช่นนี้: ตารางสูตรอาหาร RecipeID Name Description ตาราง RecipeIngredients RecipeID IngredientID Quantity UOM กุญแจสำคัญในการมีRecipeIngredients(RecipeID, IngredientID) วิธีที่ดีในการค้นหาสูตรอาหารที่ซ้ำกันคืออะไร สูตรที่ซ้ำกันหมายถึงการมีชุดส่วนผสมและปริมาณที่แน่นอนเหมือนกันสำหรับแต่ละส่วนผสม ฉันคิดว่าFOR XML PATHจะใช้เพื่อรวมส่วนผสมต่างๆไว้ในคอลัมน์เดียว ฉันยังไม่ได้สำรวจอย่างเต็มที่ แต่ควรจะทำงานถ้าฉันแน่ใจว่าส่วนผสม / UOMs / ปริมาณนั้นเรียงตามลำดับเดียวกันและมีตัวคั่นที่เหมาะสม มีแนวทางที่ดีกว่านี้ไหม? มีสูตร 48K และแถวส่วนผสม 200K

3
การแปลงสตริงที่ไม่ใช่ Unicode เป็น Unicode สตริง SSIS
ฉันกำลังสร้างแพ็คเกจที่ฉันจะส่งออกข้อมูลจากฐานข้อมูลไปยังไฟล์ excel ที่ว่างเปล่า เมื่อฉันเพิ่มเฉพาะส่วนประกอบต้นทางและปลายทางและฉันเรียกใช้แพคเกจฉันได้รับข้อผิดพลาดในการแปลงที่ระบุคอลัมน์เอาท์พุทและคอลัมน์ "A" ไม่สามารถแปลงระหว่างชนิดข้อมูลสตริงของ unicode และ non-unicode ในการแก้ไขปัญหานี้ฉันได้เพิ่มส่วนประกอบการแปลงข้อมูลและแปลงคอลัมน์ทั้งหมดเป็น "Unicode String [DT_WSTR]" และฉันไม่ได้รับข้อผิดพลาดอีกต่อไป ปัญหาเดียวคือฉันมีประมาณ 50 คอลัมน์ที่ฉันต้องไป 1 ต่อ 1 และเลือก "Unicode String [DT_WSTR]" จากรายการแบบหล่นลง จากนั้นฉันต้องเข้าไปในองค์ประกอบปลายทางและแมปคอลัมน์ที่เพิ่งแปลงใหม่ไปยังไฟล์ excel ของฉัน คำถามของฉันคือถ้ามีคนเจอปัญหานี้จะมีวิธีที่มีประสิทธิภาพมากขึ้นในการหลีกเลี่ยงการแปลงประเภทข้อมูลด้วยตนเองทั้งหมดหรือไม่? ต้องแปลงและแมปคอลัมน์ทั้งหมดทีละรายการดูเหมือนจะไม่เป็นประโยชน์โดยเฉพาะถ้าคุณมีจำนวนแถวมาก ฉันเข้าใจว่าไฟล์ excel ไม่ใช่วิธีที่ดีที่สุดในการนำเข้าและส่งออกข้อมูล แต่เป็นสิ่งที่จำเป็นในกรณีนี้โดยเฉพาะ ฉันอาจมองหาวิธีที่จะส่งออกไปยังไฟล์ข้อความแบบแฟลตและลองแปลงเป็น excel เป็นขั้นตอนสุดท้ายในแพ็คเกจ ฉันกำลังกระโดดนี้จะไม่เรียกข้อผิดพลาดการแปลง unicode / nonunicode เดียวกัน

2
วิธีการแผ่ผลของตารางที่มีสองตารางที่ "เกี่ยวข้อง" อย่างเกี่ยวข้องได้อย่างไร
ฉันได้จัดตารางบางส่วนในฐานข้อมูลของฉันให้มีความยืดหยุ่นมากขึ้น แต่ฉันไม่แน่ใจว่าจะเขียน SQL อย่างไรเพื่อดึงข้อมูลที่มีความหมายออกมา ฉันมีตารางต่อไปนี้ (ค่อนข้างยากสำหรับตัวอย่างที่ชัดเจน): CREATE TABLE Loans( Id int, SchemaId int, LoanNumber nvarchar(100) ); CREATE TABLE SchemaFields( Id int, SchemaId int, FieldName nvarchar(255) ); CREATE TABLE LoanFields( Id int, LoanId int, SchemaFieldId int, FieldValue nvarchar(4000) ); ด้วยข้อมูลต่อไปนี้: INSERT INTO Loans (Id, SchemaId, LoanNumber) VALUES (1, 1, 'ABC123'); INSERT …

1
ฉันสามารถลดขนาดไฟล์บันทึกธุรกรรมบนฐานข้อมูลมิเรอร์ได้หรือไม่
นี่เป็นคำถามที่ตามมาสำหรับคำถามก่อนหน้าเกี่ยวกับสาเหตุที่ฉันไม่สามารถย่อขนาดไฟล์บันทึกในฐานข้อมูลหลัก เพื่อให้เรื่องสั้นสั้นลงฉันตั้งค่าการทำมิเรอร์ฐานข้อมูล แต่ลืมตรวจสอบให้แน่ใจว่างานที่สำรองข้อมูลบันทึกธุรกรรมกำลังทำงานอีกครั้งและบันทึกธุรกรรมเพิ่มขึ้นเกือบ 60GB เนื่องจากการทำมิเรอร์ถูกตั้งค่าการเพิ่มขนาดนี้ซ้ำกับเซิร์ฟเวอร์มิร์เรอร์และในที่สุดก็ใช้พื้นที่ดิสก์ทั้งหมดและทำให้ฐานข้อมูลมิเรอร์ไม่สามารถใช้งานได้ ต่อคำถามนี้เกี่ยวกับการบำรุงรักษาล็อกธุรกรรมบนฐานข้อมูลกระจกคุณจะไม่สามารถกลับขึ้นไปบันทึกบนกระจก แต่เมื่อถามเฉพาะในการแสดงความคิดเห็นเกี่ยวกับวิธีการลดขนาดแฟ้มบันทึกรกในฐานข้อมูลกระจกมีความคิดเห็นที่ถูกทิ้งไว้ที่ วิธีหนึ่งในการทำเช่นนี้คือการเฟลโอเวอร์ไปยังฐานข้อมูลที่มิเรอร์และทำการย่อขนาด ทดสอบอย่างละเอียดในสภาพแวดล้อมที่ไม่ใช่การผลิตเพื่อให้แน่ใจว่ามีพฤติกรรมที่คุณต้องการ / คาดหวัง สิ่งนี้ดูเหมือนจะแนะนำว่าอาจมีวิธีอื่นในการย่อขนาดไฟล์บันทึกบนมิเรอร์และวิธีนี้อาจไม่ปลอดภัยที่จะทำบนเซิร์ฟเวอร์ที่ใช้งานจริง มีวิธีการอย่างปลอดภัยหดแฟ้มบันทึกธุรกรรมบนมิเรอร์ฐานข้อมูลหรือไม่

1
ฉันจะคัดลอกจากไฟล์ภายในเครื่องไปยังฐานข้อมูลระยะไกลใน PostgreSQL ได้อย่างไร [ปิด]
ปิด คำถามนี้ต้องการรายละเอียดหรือความคมชัด ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ เพิ่มรายละเอียดและชี้แจงปัญหาโดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา ฉันเป็นสามเณรใน psql และต้องการความช่วยเหลือ ฉันจะโหลด CSV ท้องถิ่นไปยังฐานข้อมูลระยะไกลได้อย่างไร ฉันใช้คำสั่งต่อไปนี้ \COPY test(user_id, product_id, value) FROM '/Users/testuser/test.tsv' WITH DELIMITER '\t' CSV HEADER; แต่สิ่งนี้จะค้นหาไฟล์บนฐานข้อมูลระยะไกลในขณะที่ฉันต้องทำบนพีซีในพื้นที่ของฉัน

2
เหตุใดจึงอนุญาตให้ "ฟังก์ชั่นกลุ่มที่ไม่ใช่กลุ่มเดี่ยว" ได้รับอนุญาตในการเลือกย่อย แต่ไม่ได้อยู่ในตัวของมันเอง
เหตุใดแบบสอบถามแรกจึงไม่ล้มเหลวด้วยข้อผิดพลาดเดียวกับข้อที่สอง: with w as (select 1 product_id, 10 units from dual union all select 2, 5 from dual) select sum(units) from (select product_id, sum(units) units from w); /* SUM(UNITS) ---------- 15 */ with w as (select 1 product_id, 10 units from dual union all select 2, 5 from dual) select …

3
SSIS บังคับให้เปลี่ยนสตริงแหล่ง excel เพื่อลอย
มีคอลัมน์ใน Excel ที่ควรจะเป็นข้อความ แต่ SSIS เห็นข้อความที่เป็นตัวเลขอยู่ที่นั่นและทำให้เป็นทศนิยมสองเท่าที่มีความแม่นยำโดยอัตโนมัติ [DT_R8] ฉันสามารถเปลี่ยนได้ด้วยตนเองในคอลัมน์ภายนอกและเอาท์พุทของสาขาเอาท์พุท แต่เอาท์พุทข้อผิดพลาดเพียงปฏิเสธที่จะให้ฉันเปลี่ยนคอลัมน์ที่เกี่ยวข้อง Error at Extract Stations [Excel Source [1]]: The data type for "output "Excel Source Error Output" (10)" cannot be modified in the error "output column "Group No" (29)". Error at Extract Stations [Excel Source [1]]: Failed to set property "DataType" on …

2
วิธีการติดตามแบบสอบถาม SQL ที่ crashing SQL Server
เรามีเซิร์ฟเวอร์ฐานข้อมูล SQL Server 2008 (เกิดขึ้นกับการทำงานภายใต้ MS Failover Clustering แต่ฉันไม่คิดว่าเกี่ยวข้องกับที่นี่) แอปพลิเคชันของเรารัน Hibernate สำหรับการเข้าถึงฐานข้อมูลและเนื่องจากเราอัปเกรดเมื่อเร็ว ๆ นี้จาก v3.1 เป็น 3.6 เราพบ SQL Server หยุดทำงานเป็นประจำ (ทุก ๆ 24-48 ชั่วโมง แต่บางครั้งก็บ่อยกว่า) ปัญหาเฉพาะในคำถามน่าจะเกี่ยวข้องกับหน่วยความจำ ก่อนที่เซิร์ฟเวอร์จะล่ม (และจากนั้นรีสตาร์ทอัตโนมัติโดยตัวจัดการคลัสเตอร์ล้มเหลวที่ดูเหมือนว่า) เราได้รับข้อผิดพลาดเหล่านี้: Error: 701, Severity: 17, State: 130. There is insufficient system memory in resource pool 'internal' to run this query. ข้อความ …

2
การสืบค้นแต่ละรายการรันใน 10ms โดย UNION ALL จะใช้เวลา 290ms + (7.7M บันทึก MySQL DB) วิธีเพิ่มประสิทธิภาพ
ฉันมีตารางที่จัดเก็บการนัดหมายที่มีให้สำหรับครูช่วยให้สามารถแทรกได้สองชนิด: ตามชั่วโมง : มีอิสระทั้งหมดในการเพิ่มช่องไม่ จำกัด ต่อวันต่อครู (ตราบใดที่ช่องไม่ทับซ้อนกัน): ในวันที่ 15 / เม.ย. อาจารย์อาจมีช่องเวลา 10:00, 11:00, 12:00 และ 16:00 . บุคคลจะได้รับหลังจากเลือกเวลา / ช่องของครูที่เฉพาะเจาะจง ช่วงเวลา / ช่วงเวลา : วันที่ 15 / เม.ย. ครูคนอื่นอาจทำงานได้ตั้งแต่ 10:00 น. ถึง 12:00 น. และจากเวลา 14:00 น. ถึง 18:00 น. บุคคลที่มาถึงตามคำสั่งของการมาถึงดังนั้นหากครูทำงานตั้งแต่เวลา 10:00 น. ถึง 12:00 น. ทุกคนที่มาถึงในช่วงเวลานี้จะเข้าร่วมตามลำดับของการมาถึง (คิวท้องถิ่น) เนื่องจากฉันต้องส่งคืนอาจารย์ที่มีอยู่ทั้งหมดในการค้นหาฉันจึงต้องการบันทึกช่องทั้งหมดในตารางเดียวกันตามลำดับของช่วงการมาถึง …
9 mysql 

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

3
แค็ตตาล็อก SQL Server 2012 ไปสู่ ​​sysjobhistory - วิธีเข้าร่วมใด ๆ
ฉันใช้ทรัพยากรหมดและไม่สามารถหาวิธีป้องกันการเข้าร่วมตาราง ssisdb.catalog กับงานที่เรียกใช้ พยายามเขียน sprocs ที่กำหนดเองเพื่อตรวจสอบเวลาดำเนินการและแถวของฉันที่เขียนจากตารางแคตตาล็อกและมันจะเป็นประโยชน์อย่างมากที่จะสามารถเชื่อมโยงพวกเขาเข้าด้วยกันกับงานที่เรียก ฉันพยายามที่จะดูว่ามีตารางใด ๆ ที่สามารถใช้เพื่อเข้าร่วมตาราง catalog.executions เพื่อ msdb.sysjobhistory ฉันต้องเกี่ยวข้องกับงานที่เรียกว่าแพคเกจ SSIS แล้วใช้ข้อมูลในการดำเนินการสำหรับการวิเคราะห์ของฉัน

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