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

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

4
ความแตกต่างระหว่าง sys และบัญชีระบบในฐานข้อมูล Oracle คืออะไร?
มีสองวิธีในการเชื่อมต่อกับ Oracle ในฐานะผู้ดูแลระบบโดยใช้ sqlplus: sqlplus sys as sysdba sqlplus system/manager ฉันควรใช้บัญชีเหล่านี้เพื่อจุดประสงค์ที่แตกต่างกัน งานใดที่เป็นแบบแผนสองอย่างนี้มีไว้เพื่ออะไร? เมื่อใดที่ฉันควรใช้อันใดอันหนึ่งในหมู่พวกเขา?

5
คุณปรับแต่ง MySQL สำหรับภาระงาน InnoDB จำนวนมากได้อย่างไร
สมมติว่าระบบ OLTP ที่ใช้งานจริงนั้นมีตาราง InnoDB เป็นส่วนใหญ่ อาการที่พบบ่อยของระบบผิดพลาด / กำหนดค่าผิดพลาดคืออะไร? พารามิเตอร์การกำหนดค่าใดที่คุณมักเปลี่ยนจากค่าเริ่มต้น คุณจะสังเกตเห็นคอขวดที่อาจเกิดขึ้นก่อนที่จะมีปัญหาได้อย่างไร คุณรู้จักและแก้ไขปัญหาที่ใช้งานอยู่ได้อย่างไร เกร็ดเล็กเกร็ดน้อยที่มีรายละเอียดเกี่ยวกับstatusตัวแปรเฉพาะและการวินิจฉัยจะได้รับการชื่นชม

6
เหตุใดปุ่มลำดับ GUID จึงทำงานได้เร็วกว่าปุ่ม INT ตามลำดับในกรณีทดสอบของฉัน
หลังจากที่ถามนี้คำถามเปรียบเทียบลำดับและ guid ของที่ไม่ใช่ลำดับผมพยายามที่จะเปรียบเทียบประสิทธิภาพ INSERT เมื่อวันที่ 1) ตารางที่มีคีย์หลัก GUID เริ่มต้นตามลำดับด้วยnewsequentialid()และ 2) ตารางที่มีคีย์หลัก INT identity(1,1)เริ่มต้นตามลำดับด้วย ฉันคาดว่าหลังจะเร็วที่สุดเนื่องจากมีความกว้างน้อยกว่าจำนวนเต็มและมันก็ดูเหมือนจะง่ายกว่าในการสร้างจำนวนเต็มตามลำดับกว่า GUID ตามลำดับ แต่ด้วยความประหลาดใจของฉัน INSERTs บนตารางที่มีคีย์จำนวนเต็มช้ากว่าตาราง GUID ตามลำดับอย่างมีนัยสำคัญ นี่แสดงการใช้เวลาเฉลี่ย (มิลลิวินาที) สำหรับการทดสอบการทำงาน: NEWSEQUENTIALID() 1977 IDENTITY() 2223 มีใครอธิบายเรื่องนี้ได้บ้าง มีการใช้การทดลองต่อไปนี้: SET NOCOUNT ON CREATE TABLE TestGuid2 (Id UNIQUEIDENTIFIER NOT NULL DEFAULT NEWSEQUENTIALID() PRIMARY KEY, SomeDate DATETIME, batchNumber BIGINT, FILLER CHAR(100)) …

3
ประสิทธิภาพการทำงานของดัชนีที่ไม่ทำคลัสเตอร์กับ Heaps เทียบกับดัชนีแบบคลัสเตอร์
เอกสารไวท์ 2007 นี้เปรียบเทียบประสิทธิภาพสำหรับคำสั่งเลือก / แทรก / ลบ / อัปเดตและการเลือกช่วงแต่ละรายการบนตารางที่จัดเป็นดัชนีแบบคลัสเตอร์เทียบกับบนตารางที่จัดเป็นฮีปที่มีดัชนีที่ไม่ใช่คลัสเตอร์ในคอลัมน์คีย์เดียวกันกับ CI โต๊ะ. โดยทั่วไปตัวเลือกดัชนีแบบคลัสเตอร์จะทำงานได้ดีขึ้นในการทดสอบเนื่องจากมีเพียงโครงสร้างเดียวที่ต้องบำรุงรักษาและเนื่องจากไม่จำเป็นต้องทำการค้นหาบุ๊กมาร์ก กรณีที่น่าสนใจอย่างหนึ่งที่อาจไม่ครอบคลุมในเอกสารจะเป็นการเปรียบเทียบระหว่างดัชนีที่ไม่ทำคลัสเตอร์กับฮีปเทียบกับดัชนีที่ไม่ทำคลัสเตอร์กับดัชนีที่ทำคลัสเตอร์ ในอินสแตนซ์นั้นฉันคาดว่า heap อาจทำงานได้ดีขึ้นเช่นเดียวกับ NCI leaf leaf ระดับ SQL Server ที่มี RID เพื่อติดตามโดยตรงแทนที่จะต้องการสำรวจดัชนีคลัสเตอร์ มีใครทราบบ้างเกี่ยวกับการทดสอบอย่างเป็นทางการที่คล้ายกันซึ่งดำเนินการในพื้นที่นี้และถ้าเป็นเช่นนั้นผลลัพธ์คืออะไร

4
การจัดรูปแบบ T-SQL ใน SSMS 2012
ตามเอกสาร Microsoft นี้: http://msdn.microsoft.com/en-us/library/ms174205.aspx ฉันควรจะสามารถใช้ ctrl + K แล้ว ctrl + D เพื่อจัดรูปแบบเอกสาร SQL ของฉันใน SQL Server Management Studio 2012 แต่เมื่อฉันใช้คอมโบนั้นฉันได้รับข้อผิดพลาด: การรวมคีย์ (Ctrl + K, Ctrl + D) ถูกผูกไว้กับคำสั่ง (Format Document) ซึ่งไม่สามารถใช้งานได้ในปัจจุบัน ฉันกำลังพยายามแก้ไขเอกสาร SQL ที่มีอยู่ซึ่งไม่มีการจัดรูปแบบเลยซึ่งทำให้อ่านยากมาก ไม่มีใครรู้วิธีการทำให้คำสั่งจัดรูปแบบเอกสารพร้อมใช้งานเพื่อให้ฉันสามารถจัดรูปแบบ SQL รหัสนี้สำหรับฉันได้หรือไม่
39 sql-server  ssms 

2
การกำหนดค่า PostgreSQL สำหรับประสิทธิภาพการอ่าน
ระบบของเราเขียนข้อมูลจำนวนมาก (ระบบ Big Data) ประสิทธิภาพการเขียนดีพอสำหรับความต้องการของเรา แต่ประสิทธิภาพการอ่านช้าเกินไป โครงสร้างคีย์หลัก (ข้อ จำกัด ) มีความคล้ายคลึงกับตารางทั้งหมดของเรา: timestamp(Timestamp) ; index(smallint) ; key(integer). ตารางสามารถมีได้หลายล้านแถวแม้กระทั่งหลายพันล้านแถวและการร้องขอการอ่านมักจะเป็นช่วงเวลาที่ระบุ (การประทับเวลา / ดัชนี) และแท็ก เป็นเรื่องปกติที่มีข้อความค้นหาที่ส่งกลับประมาณ 200k บรรทัด ขณะนี้เราสามารถอ่านประมาณ 15k บรรทัดต่อวินาที แต่เราต้องเร็วขึ้น 10 เท่า เป็นไปได้และถ้าเป็นเช่นนั้นได้อย่างไร หมายเหตุ: PostgreSQL นั้นมาพร้อมกับซอฟต์แวร์ของเราดังนั้นฮาร์ดแวร์จึงแตกต่างจากไคลเอนต์หนึ่งไปอีกไคลเอนต์หนึ่ง มันเป็น VM ที่ใช้สำหรับการทดสอบ โฮสต์ของ VM คือ Windows Server 2008 R2 x64 พร้อม RAM 24.0 GB ข้อมูลจำเพาะเซิร์ฟเวอร์ …

1
จุดที่ WHERE 1 = 2 คืออะไรสำหรับ SELECT INTO table query
ถ้าเราต้องการสร้างตารางใหม่จากตารางที่มีอยู่ใน SQL Server เราสามารถทำสิ่งต่อไปนี้ SELECT * into Table2 from Table1 WHERE 1=2 จุดที่ข้อคืออะไร? ฉันลองมันโดยไม่ใช้ประโยคไหนและมันก็ใช้ได้ดี ฉันเคยเห็นสิ่งนี้ซึ่งมีหลายตัวอย่างในอินเทอร์เน็ต แต่ไม่ใช่เหตุผลว่าทำไมมันถึงต้องการ
39 sql-server 

5
เวลาที่เหมาะสมในการใช้ MariaDB แทนที่จะเป็น MySQL และเพราะเหตุใด
สิ่งที่เราได้รับและสิ่งที่เราแพ้จากการย้ายถิ่นฐานครั้งนี้? สิ่งที่ฉันคาดหวังว่าจะเป็นข้อเสียหลังจากการโยกย้าย จำเป็นหรือไม่ที่จะต้องเปลี่ยนแอพพลิเคชั่นในทุกสถานการณ์?

2
เป็นการปฏิบัติที่ไม่ถูกต้องหรือไม่ที่จะมีความสัมพันธ์แบบหนึ่งต่อหนึ่งที่ไม่เหมือนใคร
Say โต๊ะcarมีความสัมพันธ์แบบหนึ่งต่อหนึ่งตารางelectric_car, และgas_car hybrid_carหาก a carคือelectric_carมันไม่สามารถปรากฏในgas_carหรืออีกต่อไปhybrid_carฯลฯ มีอะไรผิดปกติกับการออกแบบเช่นนี้หรือไม่? ปัญหาบางอย่างที่อาจเกิดขึ้นตามท้องถนน?

3
วิธีการในการค้นหาค่าสถานะการติดตามใหม่ใน SQL Server
มีร่องรอยการติดตามจำนวนมากอยู่ที่นั่น บางอย่างได้รับการบันทึกไว้เป็นอย่างดีบางอย่างไม่ได้และบางรายการก็พบว่ามีสถานะพฤติกรรมเริ่มต้นในการเปิดตัว 2016 นอกเหนือจากช่องทางการสนับสนุนอย่างเป็นทางการพนักงานของ Microsoft และอื่น ๆ แล้ววิธีการค้นหาการติดตามสถานะใหม่คืออะไร ฉันได้อ่านบทความล่าสุดโดย Aaron Bertrand ที่นี่และที่นี่แต่ไม่เห็นอะไรเลยเกี่ยวกับ Trace Flags ใหม่ ฉันคัดลอกข้อมูลและไฟล์บันทึกของ mssqlsystemresource ไปยังตำแหน่งใหม่และแนบมันเหมือนฐานข้อมูลปกติเพื่อเปิดดูตารางระบบและมุมมอง แต่ไม่พบสิ่งใดในทันที ฉันพิจารณาการจดรายการการสืบค้นกลับสถานะที่รู้จักและวนรอบตัวเลขที่ไม่อยู่ในรายการเพื่อดูว่าใครอนุญาตให้ใช้ DBCC TRACEON แต่ต้องการถามคำถามที่นี่ก่อน สมมติว่าคำสั่ง DBCC เพื่อเปิดใช้งานนั้นต้องทำการตรวจสอบกับทรัพยากรบางอย่างเพื่อให้แน่ใจว่าการตั้งค่าสถานะการสืบค้นกลับนั้นถูกต้อง มี. dll หรือไฟล์ระบบอื่น ๆ ที่เก็บรายการหรือไม่? ฉันรู้ว่าคำถามนั้นสร้างความหลากหลาย แต่สิ่งที่กระตุ้นให้เกิดการอ่านเกี่ยวกับธงชาติพร้อมกับพฤติกรรมที่ตั้งใจไว้พร้อมกับคุณสมบัติใหม่ในปี 2559 ที่ไม่มีผลกระทบที่อธิบายไว้ ความคิดเริ่มต้นของฉันคือบางทีตัวเลขอาจถูกย้ายไปอย่างใดอย่างหนึ่งเช่น 7129 กลายเป็น 7219 ฉันหวังว่าจะได้รับรายชื่อของธงติดตามที่ถูกต้องภายในช่วงพูดว่า 7000-7999 เพื่อหาวิธีเรียงสับเปลี่ยน ทดสอบพวกเขาทั้งหมดทั้งในฐานะที่เป็น DBCC TRACEON และพารามิเตอร์เริ่มต้นจะค่อนข้างรำคาญรวมกับการทดสอบผลกับพฤติกรรมการทำงาน

2
ข้อผิดพลาด: ไม่ได้เลือกสคีมาที่จะสร้าง
ฉันกำลังทำงานกับฐานข้อมูล postgresql ของ amazon RDS ที่ฉันรู้ว่ามีปัญหากับสคีมาสาธารณะ (อาจถูกทิ้ง) แต่เห็นได้ชัดว่าสคีมามีอยู่แล้วและปัญหายังไม่ได้รับการแก้ไข นี่คือตัวอย่างเซสชันที่มีฐานข้อมูลเปล่าที่สร้างขึ้นใหม่: mydb=> CREATE TABLE distributors ( mydb(> did integer, mydb(> name varchar(40) UNIQUE mydb(> ); ERROR: no schema has been selected to create in mydb=> show search_path; search_path ---------------- "$user",public (1 row) mydb=> create schema public; ERROR: schema "public" already exists คำใบ้ใด …

3
เมื่อใดควรสร้างสถิติแทนการสร้างดัชนี
ฉันได้พบข้อมูลมากมายเกี่ยวกับสิ่งที่ STATISTICS : วิธีการดูแลรักษาวิธีการสร้างด้วยตนเองหรือโดยอัตโนมัติจากแบบสอบถามหรือดัชนีและอื่น ๆ แต่ผมได้รับไม่สามารถที่จะหาใด ๆคำแนะนำหรือ "วิธีปฏิบัติที่ดีที่สุด" ข้อมูลเกี่ยวกับเมื่อเพื่อสร้าง: สถานการณ์ใดที่ได้ประโยชน์จากวัตถุสถิติที่สร้างขึ้นด้วยตนเองมากกว่าจากดัชนี ฉันได้เห็นสถิติที่สร้างขึ้นด้วยตนเองที่กรองแล้วช่วยสอบถามในตารางที่แบ่งพาร์ติชัน (เนื่องจากสถิติที่สร้างขึ้นสำหรับดัชนีครอบคลุมทั้งตารางและไม่ใช่ต่อพาร์ติชัน - ความสุกใส!) แต่แน่นอนว่าต้องมีสถานการณ์อื่น ๆ ที่จะได้รับประโยชน์จากวัตถุสถิติ ไม่ต้องการรายละเอียดของดัชนีหรือไม่คุ้มค่ากับการบำรุงรักษาดัชนีหรือเพิ่มโอกาสในการบล็อค / ล็อคตาย @JonathanFite ในความคิดเห็นพูดถึงความแตกต่างระหว่างดัชนีและสถิติ: ดัชนีจะช่วยให้ SQL ค้นหาข้อมูลได้เร็วขึ้นด้วยการสร้างการค้นหาที่เรียงลำดับแตกต่างจากตาราง สถิติช่วยให้ SQL พิจารณาว่าจำเป็นต้องใช้หน่วยความจำ / ความพยายามเท่าใดในการตอบแบบสอบถาม นั่นคือข้อมูลที่ดีส่วนใหญ่เป็นเพราะมันช่วยให้ฉันชี้แจงคำถามของฉัน: วิธีการที่ไม่ทราบนี้ (หรือข้อมูลทางเทคนิคอื่น ๆ ใด ๆ เกี่ยวกับสิ่งที่และวิธีการ s ที่เกี่ยวข้องกับพฤติกรรมและธรรมชาติของSTATISTICS) ช่วยตรวจสอบเมื่อให้เลือกCREATE STATISTICSมากกว่าCREATE INDEXโดยเฉพาะอย่างยิ่งเมื่อมีการสร้างดัชนีจะสร้างที่เกี่ยวข้องกับSTATISTICSวัตถุ? สถานการณ์ใดที่จะให้บริการที่ดีขึ้นโดยมีเพียงข้อมูลสถิติและไม่มีดัชนี มันจะเป็นซุปเปอร์ duper ประโยชน์ถ้าเป็นไปได้ที่จะมีตัวอย่างการทำงานของสถานการณ์ที่วัตถุที่เป็นแบบที่ดีกว่าSTATISTICSINDEX เนื่องจากฉันเป็นผู้เรียนด้วยสายตา / นักคิดฉันคิดว่ามันอาจช่วยให้เห็นความแตกต่างระหว่างSTATISTICSและINDEXes เคียงข้างกันเป็นวิธีที่เป็นไปได้ในการช่วยกำหนดว่าเมื่อใดSTATISTICSจะเป็นทางเลือกที่ดีกว่า …

6
Management Studio System.OutOfMemoryException
ฉันใช้ Microsoft SQL Server 2012 และพยายามเรียกใช้แบบสอบถามอย่างง่าย ๆ ภายใน Management Studio ฉันได้รับข้อผิดพลาดต่อไปนี้ (ใน SSMS ทำงานบนเซิร์ฟเวอร์): เกิดข้อผิดพลาดขณะดำเนินการแบทช์ ข้อความแสดงข้อผิดพลาดคือ: ข้อยกเว้นชนิด 'System.OutOfMemoryException' ถูกส่งออกไป ระบบมีการติดตั้ง RAM 24GB แต่การค้นหาตัวจัดการงานกระบวนการ sqlservr.exe ใช้ 2.9GB เท่านั้น มีการตั้งค่าบางอย่างที่ จำกัด การใช้ RAM หรือไม่

1
แบบจำลองการกู้คืนง่ายหรือเต็มสำหรับฐานข้อมูล
ฉันควรใช้แบบจำลองการกู้คืนแบบเต็มเมื่อใดและเมื่อใดควรใช้แบบจำลองการกู้คืนอย่างง่ายสำหรับฐานข้อมูล ฉันใช้รูปแบบการกู้คืนแบบเต็มเสมอเพราะเป็นค่าเริ่มต้น แต่วันนี้ฉันพบข้อผิดพลาดนี้: ผู้ให้บริการ Microsoft OLE DB สำหรับ SQL Server (0x80040E14) บันทึกธุรกรรมสำหรับฐานข้อมูล 'DATABASE NAME' เต็ม หากต้องการค้นหาสาเหตุที่พื้นที่ในบันทึกไม่สามารถนำกลับมาใช้ใหม่ได้ให้ดูคอลัมน์ log_reuse_wait_desc ใน sys.database จริง ๆ แล้วฐานข้อมูลเฉพาะนั้นเป็นหนึ่งในฐานข้อมูลที่เล็กที่สุดและไม่ได้ใช้งานมากที่สุดบนเซิร์ฟเวอร์ของฉันดังนั้นฉันจึงไม่รู้เลยว่าจะสามารถบันทึกข้อมูลได้เต็มรูปแบบในฐานข้อมูลนี้ได้อย่างไร เมื่อต้องการลดขนาดบันทึกและทำให้ฐานข้อมูลสามารถเข้าถึงได้อีกครั้งฉันเปลี่ยนรูปแบบการกู้คืนจาก FULL เป็น SIMPLE และลดขนาดแฟ้มบันทึกเชิงตรรกะด้วยคำสั่งต่อไปนี้ alter database myDbName SET recovery simple go dbcc shrinkfile('LOG FILE LOGICAL NAME', 100) go มันช่วย แต่ตอนนี้ฉันต้องเข้าใจทำไมมันช่วยHOWสถานการณ์นี้เริ่มต้นและวิธีการป้องกันนี้ในอนาคตหรือไม่ แก้ไข: ทุกคืนเวลา 1 นาฬิกาเรากำลังสำรองข้อมูลสคริปต์ทุกฐานข้อมูลบนเซิร์ฟเวอร์ สิ่งนี้กำลังดำเนินการโดยสคริปต์บรรทัด 31 ซึ่งส่วนที่สำคัญที่สุดคือ …

3
VACUUM ANALYZE ปกติยังคงแนะนำภายใต้ 9.1 หรือไม่
ฉันใช้ PostgreSQL 9.1 บน Ubuntu VACUUM ANALYZEยังมีกำหนดการแนะนำหรือมีระบบตอบโต้อัตโนมัติเพียงพอที่จะดูแลทุกความต้องการได้หรือไม่? หากคำตอบคือ "มันขึ้นอยู่กับ" แล้ว: ฉันมีฐานข้อมูลขนาดใหญ่ (ขนาดการถ่ายโอนข้อมูลบีบอัด 30 GiB, ไดเรกทอรีข้อมูล 200 GiB) ฉันทำ ETL ลงในฐานข้อมูลนำเข้าใกล้ 3 ล้านแถวต่อสัปดาห์ ตารางที่มีการเปลี่ยนแปลงบ่อยที่สุดนั้นสืบทอดมาจากตารางต้นแบบโดยไม่มีข้อมูลในตารางต้นแบบ (ข้อมูลถูกแบ่งพาร์ติชันเป็นรายสัปดาห์) ฉันสร้างการเปิดตัวรายชั่วโมงและจากที่นั่นรายงานรายวันรายสัปดาห์และรายเดือน ฉันถามเพราะกำหนดVACUUM ANALYZEส่งผลกระทบต่อการรายงานของฉัน มันใช้เวลานานกว่า 5 ชั่วโมงและฉันต้องฆ่ามันสองครั้งในสัปดาห์นี้เพราะมันส่งผลกระทบต่อการนำเข้าฐานข้อมูลปกติ check_postgresไม่ได้รายงานการขยายตัวที่สำคัญในฐานข้อมูลดังนั้นจึงไม่ใช่ปัญหา จากเอกสาร, autovacuum ควรดูแล ID ธุรกรรมที่มีการห่อหุ้มด้วย คำถามที่ยืน: ฉันยังคงต้องVACUUM ANALYZE?
38 postgresql  etl  vacuum 

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