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

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

6
นับว่าคอลัมน์สองแถวขึ้นไปในแถวหนึ่งมีค่าเกินกว่าค่าใด [บาสเกตบอลคู่คู่สามเท่า]
ฉันเล่นเกมบาสเก็ตบอลที่อนุญาตให้ส่งออกสถิติเป็นไฟล์ฐานข้อมูลดังนั้นจึงสามารถคำนวณสถิติจากเกมที่ไม่ได้นำมาใช้ในเกมได้ จนถึงตอนนี้ฉันก็ไม่มีปัญหาในการคำนวณสถิติที่ฉันต้องการ แต่ตอนนี้ฉันพบปัญหา: การนับจำนวน double double และ / หรือ triple doubles ที่ผู้เล่นทำในช่วงฤดูกาลจากสถิติของเกม คำจำกัดความของ double double และ double double มีดังนี้: สองครั้งสองครั้ง: double-double ถูกกำหนดเป็นผลการทำงานที่ผู้เล่นสะสมตัวเลขสองหลักรวมในสองในห้าหมวดหมู่สถิติ - คะแนน, รีบาวน์, ช่วยเหลือ, ขโมยและช็อตที่ถูกบล็อก - ในเกม สามคู่: Triple-Double ถูกกำหนดให้เป็นการแสดงที่ผู้เล่นสะสมตัวเลขสองหลักรวมในสามในห้าหมวดหมู่สถิติ - คะแนน, รีบาวน์, ช่วยเหลือ, ขโมยและช็อตที่ถูกบล็อก - ในเกม Quadruple-double (เพิ่มเพื่อความกระจ่าง) quadruple-double ถูกกำหนดให้เป็นประสิทธิภาพที่ผู้เล่นสะสมตัวเลขสองหลักรวมในสี่ในห้าหมวดหมู่ทางสถิติ ได้แก่ คะแนนรีบาวน์การช่วยเหลือการขโมยและช็อตที่ถูกบล็อกในเกม ตาราง "PlayerGameStats" จะเก็บสถิติสำหรับแต่ละเกมที่ผู้เล่นเล่นและมีลักษณะดังนี้: CREATE TABLE …

5
คอลัมน์ vs ฟิลด์: ฉันใช้คำศัพท์เหล่านี้ไม่ถูกต้องหรือไม่?
ฉันรู้สึกอายที่นี่ฉันมักใช้คำว่า "คอลัมน์" และ "ฟิลด์" แทนกันอย่างสมบูรณ์ซึ่งเพิ่งทำให้เกิดความสับสนในการอภิปรายทางเทคนิค แต่มีคนบอกฉันว่ามันไม่ถูกต้องที่ควรจะเป็น (แปลแต่ละคำเป็นสเปรดชีตคำศัพท์ละเว้นประเภทข้อมูลและสิ่งอื่น ๆ ทั้งหมดที่ทำให้ฐานข้อมูลมีประโยชน์): คอลัมน์ฐานข้อมูล: เช่นคอลัมน์สเปรดชีต บันทึกฐานข้อมูล: เหมือนแถวสเปรดชีต ฟิลด์ฐานข้อมูล: เหมือนสเปรดชีต "เซลล์" (คอลัมน์เฉพาะของแถวที่ระบุ) ถูกต้องหรือไม่ ฉันได้สาบานว่าคอลัมน์และฟิลด์จะถูกใช้แทนกันมากกว่านั้น ฉันได้รับอย่างแน่นอน ดังนั้นเราไม่เพิ่มเขตข้อมูลลงในตารางเราเพิ่มคอลัมน์ลงในตารางและเขตข้อมูลจะเกี่ยวข้องเฉพาะเมื่อพูดถึงข้อมูลภายในระเบียน มีความคิดเห็นอื่นเกี่ยวกับคอลัมน์ vs ฟิลด์หรือไม่ แก้ไข: เพื่อชี้แจงบริบทปัจจุบันคือ MS SQL Server พื้นหลังของฉันก่อนเซิร์ฟเวอร์ SQL คือ MS Access ซึ่งอาจมีผลต่อการใช้คำเหล่านี้

4
แผนการดำเนินการ vs ข้อมูลสถิติ IO
แผนการดำเนินการกราฟิก SQL Server อ่านจากขวาไปซ้ายและบนลงล่าง มีคำสั่งที่มีความหมายต่อเอาต์พุตที่สร้างขึ้นโดยSET STATISTICS IO ON? แบบสอบถามต่อไปนี้: SET STATISTICS IO ON; SELECT * FROM Sales.SalesOrderHeader AS soh JOIN Sales.SalesOrderDetail AS sod ON soh.SalesOrderID = sod.SalesOrderID JOIN Production.Product AS p ON sod.ProductID = p.ProductID; สร้างแผนนี้: และSTATISTICS IOผลลัพธ์นี้: Table 'Worktable'. Scan count 0, logical reads 0, physical reads 0, read-ahead …

4
ทำความเข้าใจกับสถิติพูลบัฟเฟอร์ INNODB
หลังจากอ่านหน้านี้ในเอกสาร mysqlฉันพยายามเข้าใจการใช้งาน InnoDB ปัจจุบันของเรา ขณะนี้เราจัดสรร RAM ขนาด 6GB สำหรับบัฟเฟอร์พูล ขนาดฐานข้อมูลของเราใกล้เคียงกัน นี่คือผลลัพธ์จากshow engine innodb status\G(เรากำลังเรียกใช้ v5.5) ---------------------- BUFFER POOL AND MEMORY ---------------------- Total memory allocated 6593445888; in additional pool allocated 0 Dictionary memory allocated 1758417 Buffer pool size 393215 Free buffers 853 Database pages 360515 Old database pages 133060 Modified db …

1
ความแตกต่างของประสิทธิภาพระหว่าง MySQL และ PostgreSQL สำหรับสคีมา / คิวรีเดียวกัน [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา ฉันเป็นมือใหม่ DBA และฉันมีประสบการณ์ใน Microsoft SQL Server แต่ฉันต้องการข้ามไปยัง FLOSS ฉันเริ่มต้น บริษัท และเราพัฒนาแอพ (PHP) ด้วยแบ็กเอนด์ Postgres และเราทำการทดสอบบางอย่างเปรียบเทียบกับ MySQL ด้วย เราสังเกตว่า MySQL นั้นเร็วกว่า PostgreSQL สองเท่า ฉันทำการทดสอบประสิทธิภาพที่เป็นรูปธรรม: คอลัมน์เดียวกันในตารางที่มีประเภทข้อมูลคอลัมน์เทียบเท่า จำนวนแถวเท่ากัน ดัชนีเดียวกันในทั้งสอง (รวมคีย์หลัก) โหลด CPU ไม่ได้ใช้งานและเครื่อง Postgres ดีกว่ามาก และแบบสอบถามเดียวกัน (ชัด) ผมทำอะไรผิดหรือเปล่า? PS: ฉันอ่าน "howtos" มากมายเกี่ยวกับการปรับแต่งประสิทธิภาพของเอ็นจิ้นฐานข้อมูล PS (2): เรากำลังใช้ InnoDB …

3
วิธีเพิ่มประสิทธิภาพฐานข้อมูลสำหรับ I / O หนักจากการอัปเดต (ซอฟต์แวร์และฮาร์ดแวร์)
สถานการณ์ ฉันมีฐานข้อมูล postgresql 9.2 ซึ่งค่อนข้างมีการปรับปรุงอย่างมากตลอดเวลา ระบบจึงถูก จำกัด ด้วย I / O และตอนนี้ฉันกำลังพิจารณาที่จะอัพเกรดอีกครั้งฉันแค่ต้องการทิศทางที่จะเริ่มปรับปรุง นี่คือภาพว่าสถานการณ์ดู 3 เดือนที่ผ่านมาได้อย่างไร: อย่างที่คุณเห็นอัปเดตบัญชีการปฏิบัติงานสำหรับการใช้งานดิสก์ส่วนใหญ่ นี่เป็นอีกภาพของการมองสถานการณ์ในหน้าต่าง 3 ชั่วโมงที่มีรายละเอียดมากขึ้น: อย่างที่คุณเห็นอัตราการเขียนสูงสุดคือประมาณ 20MB / s ซอฟต์แวร์ เซิร์ฟเวอร์กำลังใช้งาน Ubuntu 12.04 และ postgresql 9.2 ประเภทของการอัปเดตจะมีการอัปเดตขนาดเล็กตามปกติในแต่ละแถวที่ระบุโดย ID UPDATE cars SET price=some_price, updated_at = some_time_stamp WHERE id = some_idเช่น ฉันได้ลบและปรับดัชนีให้มากที่สุดเท่าที่ฉันคิดว่าเป็นไปได้และการกำหนดค่าเซิร์ฟเวอร์ (ทั้งเคอร์เนล linux และ postgres conf) ก็ปรับให้เหมาะสมเช่นกัน …

2
ฉันจะทำให้เซิร์ฟเวอร์ที่เชื่อมโยงทำงานโดยใช้การรับรองความถูกต้อง Windows ได้อย่างไร
ฉันกำลังพยายามนำเซิร์ฟเวอร์ที่เชื่อมโยงไปยัง ServerA ที่สร้างขึ้นบนเซิร์ฟเวอร์อื่นโดยใช้ ServerB "ทำโดยใช้บริบทความปลอดภัยปัจจุบันของการเข้าสู่ระบบ" ในสภาพแวดล้อมของโดเมน ฉันอ่านว่าฉันต้องสร้าง SPN สำหรับบัญชีบริการที่ใช้ SQL Server ในแต่ละเซิร์ฟเวอร์เพื่อเปิดใช้งาน Kerberos ฉันได้ทำไปแล้วและตอนนี้ทั้งสองแสดงรูปแบบการตรวจสอบสิทธิ์เป็น Kerberos อย่างไรก็ตามฉันยังคงพบข้อผิดพลาด: "Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'". ใน Active Directory ฉันเห็นว่าบัญชีบริการสำหรับ ServerB เชื่อถือได้สำหรับการมอบหมายให้ MSSQLSvc แต่ฉันสังเกตเห็นว่าบัญชีบริการสำหรับ ServerA ยังไม่ได้เปิดใช้งาน "เชื่อใจผู้ใช้นี้สำหรับการมอบหมาย" เซิร์ฟเวอร์เป้าหมายต้องเปิดใช้งานตัวเลือกนั้นด้วยหรือไม่ มีสิ่งใดอีกที่จำเป็นในการใช้การเข้าสู่ระบบ Windows ปัจจุบันเพื่อใช้เซิร์ฟเวอร์ที่เชื่อมโยงหรือไม่

5
สุดยอดแพลตฟอร์มคลาวด์สำหรับ PostgreSQL [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัพเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Exchange Administrators Stack Exchange ปิดให้บริการใน6 ปีที่ผ่านมา ปัจจุบันในโครงการของเราเราใช้เซิร์ฟเวอร์เฉพาะสำหรับฐานข้อมูล PostgreSQL ของเรา ในทางทฤษฎีเราสามารถรันอะไรก็ได้บนแพลตฟอร์มคลาวด์บางแห่ง อย่างไรก็ตามการกำหนดค่า PostgreSQL นั้นเกี่ยวข้องกับการกำหนดค่าฮาร์ดแวร์อย่างเคร่งครัด สิ่งที่เรากำลังมองหาคือโซลูชันคลาวด์ที่มีการสนับสนุน PostgreSQL ดั้งเดิม นี่คือรายการของคุณสมบัติที่ต้องการ: การปรับการกำหนดค่าฐานข้อมูลอัตโนมัติขึ้นอยู่กับทรัพยากรที่เลือก ตั้งค่าการจำลองแบบออกจากกล่อง ดังนั้นตัวเลือกและตัวเลือกที่ดีที่สุดสำหรับบริการดังกล่าวคืออะไร?
20 postgresql  cloud 

4
มีการดึงข้อมูลจาก SQL Server ที่ถูกบีบอัดเพื่อส่งข้อมูลหรือไม่?
ดึงข้อมูลจาก Microsoft SQL Server ถูกบีบอัดหรือไม่ หากสิ่งนี้ถูกควบคุมโดยสตริงการเชื่อมต่อมีวิธีง่าย ๆ ที่จะบอกได้หรือไม่ว่าแอพใดกำลังใช้งานอยู่ ฉันกำลังตรวจสอบเครื่องมือวิเคราะห์และปริมาณข้อมูลอาจใช้เวลาสักครู่เพื่อส่งผ่านเครือข่ายของเรา ฉันสงสัยว่าฉันควรคาดหวังว่าประสิทธิภาพจะเพิ่มขึ้นหรือไม่ถ้าเราดึงข้อมูลจากแหล่งข้อมูลที่บีบอัดบนเซิร์ฟเวอร์ระยะไกลเดียวกัน ตราบใดที่เราอยู่ในหัวข้อฉันอยากรู้อยากเห็น: มีการส่งข้อมูลในรูปแบบไบนารีหรือ ASCII หรือไม่? ตัวอย่างเช่นหากค่า12345ถูกสอบถามจากINTคอลัมน์จะมีการส่งค่าเป็นห้าไบต์ 0x31, 0x32, 0x33, 0x34, 0x34, 0x35; สองไบต์ที่จำเป็นสำหรับค่านั้น หรือสี่ไบต์ตามต้องการสำหรับคอลัมน์? เพื่อความชัดเจนฉันเข้าใจว่ามีตัวเลือกเกี่ยวกับการจัดเก็บข้อมูลด้วยการบีบอัดและสำรองข้อมูล ฉันถามเกี่ยวกับวิธีการส่งข้อมูล

4
การเลือกอัลกอริทึมที่เหมาะสมในฟังก์ชัน HashBytes
เราจำเป็นต้องสร้างค่าแฮชของข้อมูล nvarchar เพื่อการเปรียบเทียบ มีอัลกอริทึมแฮชหลายอย่างใน T-SQL แต่มีวิธีไหนที่ดีที่สุดในการเลือกจากสถานการณ์นี้ เราต้องการให้มั่นใจว่าความเสี่ยงของการมีค่าแฮชที่ซ้ำกันสำหรับค่า nvarchar ที่ต่างกันสองค่านั้นเป็นขั้นต่ำ จากการวิจัยของฉันทางอินเทอร์เน็ต MD5 นั้นดีที่สุด นั่นถูกต้องใช่ไหม? MSDN บอกเรา (ลิงค์ด้านล่าง) เกี่ยวกับอัลกอริธึมที่มีอยู่ แต่ไม่มีคำอธิบายใดเกี่ยวกับเงื่อนไขใดบ้าง HASHBYTES (Transact-SQL) เราจำเป็นต้องเข้าร่วมสองตารางในสองคอลัมน์ nvarchar (สูงสุด) ในขณะที่คุณสามารถจินตนาการแบบสอบถามใช้เวลาในการดำเนินการ เราคิดว่าจะเป็นการดีกว่าที่จะเก็บค่าแฮชของข้อมูล nvarchar (สูงสุด) แต่ละรายการและทำการรวมเข้ากับค่าแฮชมากกว่าค่า nvarchar (สูงสุด) ซึ่งเป็น blobs คำถามคืออัลกอริธึมแฮชใดที่ให้ความแตกต่างดังนั้นเราจึงไม่เสี่ยงต่อการมีค่าแฮชหนึ่งค่าสำหรับมากกว่าหนึ่ง nvarchar (สูงสุด)

1
เปลี่ยนเส้นทางข้อมูลที่มีอยู่
ฉันต้องการเปลี่ยนdatadirพา ธ ในmy.iniไฟล์ datadirเส้นทางที่มีอยู่คือC:/ProgramData/MySQL/MySQL Server 5.1/Data/ C:ไดรฟ์ของฉันมีขนาด 30 GB และโฟลเดอร์ข้อมูล MySQL มีพื้นที่ 25 GB ดังนั้นผมจึงต้องการที่จะเปลี่ยนไปdatadirF:/naveen/data เป็นไปได้ไหม เครื่องของฉันทำงานWindows Server 2003

5
ดาวน์โหลด SQL Server Profiler สำหรับ SQL Server Management Studio
ฉันจะทำโปรไฟล์ฐานข้อมูล SQL Server 2008 เพื่อดูรหัสที่กำลังดำเนินการบนฐานข้อมูลเฉพาะได้อย่างไร ฉันจำได้ว่าใช้ Profiler ของ SQL Server แต่ฉันไม่เห็นใน SQL Server Management Studio หลังจากดาวน์โหลด SQL Server 2008 R2 Express ฉันจะดาวน์โหลดเครื่องมือนั้นและติดตั้งได้ที่ไหน ฉันต้องการ SQL Server 2008 เวอร์ชันเต็มเพื่อดูตัวเลือกนี้หรือไม่?

2
MySQL: แบบสอบถามแบบลำดับชั้นต้นไม้
คำถามนี้ถูกโยกย้ายจาก Stack Overflow เพราะสามารถตอบได้ใน Exchange Administrators Stack Exchange อพยพ 7 ปีที่ผ่านมา SUB-TREE ภายในต้นไม้ใน MySQL ใน MYSQL ของDatabase COMPANYฉันฉันมีความTable: Employeeสัมพันธ์แบบวนซ้ำพนักงานสามารถเป็นหัวหน้าของพนักงานคนอื่นได้ A self relationship of kind (SuperVisor (1)- SuperVisee (∞) ). แบบสอบถามเพื่อสร้างตาราง: CREATE TABLE IF NOT EXISTS `Employee` ( `SSN` varchar(64) NOT NULL, `Name` varchar(64) DEFAULT NULL, `Designation` varchar(128) NOT NULL, `MSSN` …

2
ภาษาโพรซีเดอร์ PostgreSQL - ความแตกต่างระหว่าง PL / pgSQL และ SQL
ใครช่วยได้โปรดสรุปความแตกต่างระหว่าง: http://www.postgresql.org/docs/9.1/static/xfunc-sql.html และ http://www.postgresql.org/docs/9.1/static/plpgsql.html ? ประเด็นหลัก: ความแตกต่างทางแนวคิด ให้ครอบครัวที่มีปัญหาความสะดวกสบายในการใช้งาน ประเด็นทางการเมือง

2
เหตุใด DELETE จึงมีผลกระทบต่อประสิทธิภาพอย่างมาก
ในตอนท้ายคือสคริปต์ทดสอบสำหรับเปรียบเทียบประสิทธิภาพระหว่างตัวแปร @table และตาราง #temp ฉันคิดว่าฉันตั้งค่าไว้อย่างถูกต้อง - การกำหนดเวลาการทำงานนั้นเกิดขึ้นนอกคำสั่ง DELETE / TRUNCATE ผลลัพธ์ที่ฉันได้รับมีดังนี้ (คูณเป็นมิลลิวินาที) @Table Variable #Temp (delete) #Temp (truncate) --------------- -------------- ---------------- 5723 5180 5506 15636 14746 7800 14506 14300 5583 14030 15460 5386 16706 16186 5360 เพียงเพื่อให้แน่ใจว่าฉันมีสติสิ่งนี้แสดงให้เห็นว่า CURRENT_TIMESTAMP (aka GetDate()) ถูกนำมาใช้ในเวลาของคำสั่งไม่ใช่ของแบตช์ดังนั้นจึงไม่มีการโต้ตอบระหว่าง TRUNCATE / DELETE กับSET @StartTime = CURRENT_TIMESTAMPคำสั่ง select current_timestamp …

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