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

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

5
คำนวณค่าแถวตามค่าแถวก่อนหน้าและค่าจริง
สวัสดีทุกคนและขอบคุณสำหรับความช่วยเหลือของคุณ ฉันมีสถานการณ์ต่อไปนี้: ตารางที่เรียกว่า statement ที่มีฟิลด์id (int), stmnt_date (date), เดบิต (double), credit (double) และbalance (double) ฉันต้องการคำนวณยอดคงเหลือตามกฎเหล่านี้: ยอดคงเหลือแถวแรก ( ตามลำดับ ) = เดบิต - เครดิตและส่วนที่เหลือของแถว current row balance = สมดุลแถวก่อนหน้า + การเดบิตแถวปัจจุบัน - เครดิตแถวปัจจุบัน อย่างที่คุณเห็นในภาพด้านบนแถวไม่ได้จัดเรียงตามวันที่และนั่นคือเหตุผลที่ฉันใช้คำตามลำดับเวลาสองครั้งเพื่อเน้นความสำคัญของค่า stmnt_date ขอบคุณมากสำหรับความช่วยเหลือของคุณ.
9 mysql  row 

1
ไม่สามารถกู้คืนได้ (ข้อผิดพลาด 3456)
ฉันมีสถานการณ์ที่ไม่สามารถเข้าใจได้ง่ายและคิดว่าฉันจะถามในฟอรัมนี้หากผู้อื่นอาจมีคำแนะนำ ฉันใช้ SQL Server 2008 R2 SP3 มาตรฐานบน Windows Server 2008R2 Enterprise ฐานข้อมูลต้องการการบำรุงรักษาและหลังจากที่ฉันต้องกู้คืนบนเซิร์ฟเวอร์อื่น ฉันมีการสำรองฐานข้อมูลเต็มรูปแบบโดยใช้ COPY_ONLY บวกชุดสำเนาสำรอง 4 ชุด ก่อนที่จะเริ่มสร้าง tlogbackup1 เปลี่ยนจากFULLเป็นBULK_LOGGEDโมเดลการกู้คืน เพิ่มกลุ่มไฟล์ใหม่ เพิ่มไฟล์ไปยัง newfilegroup ตั้ง newfilegroup ให้เป็นค่าเริ่มต้น เลือกลงในตาราง (ใน newfilegroup) วางตารางต้นฉบับ ลบไฟล์ต้นฉบับ ลบกลุ่มไฟล์ดั้งเดิม เปลี่ยนชื่อของตารางใหม่เพื่อให้ตรงกับตารางเดิม เปลี่ยนชื่อไฟล์ของ newfilegroup เพื่อให้ตรงกับกลุ่มไฟล์ดั้งเดิม เปลี่ยนชื่อไฟล์ในแค็ตตาล็อกเพื่อให้ตรงกับชื่อไฟล์ต้นฉบับ เปลี่ยนชื่อไฟล์ที่ระดับ OS เพื่อให้ตรงกับชื่อไฟล์ต้นฉบับ กำหนด filegroup เริ่มต้นให้เป็นต้นฉบับ นำ db ออนไลน์ เปลี่ยนจากBULK_LOGGEDเป็นFULLโมเดลการกู้คืน หลังจากเสร็จสิ้นทุกขั้นตอนให้สร้าง tlogbackup2 …

1
วิธีดูข้อความค้นหา postgres แบบเต็มบล็อก
ฉันใช้ข้อความจากหน้านี้เพื่อดูการบล็อกข้อความค้นหาใน Postgres SELECT bl.pid AS blocked_pid, a.usename AS blocked_user, ka.query AS blocking_statement, now() - ka.query_start AS blocking_duration, kl.pid AS blocking_pid, ka.usename AS blocking_user, a.query AS blocked_statement, now() - a.query_start AS blocked_duration FROM pg_catalog.pg_locks bl JOIN pg_catalog.pg_stat_activity a ON a.pid = bl.pid JOIN pg_catalog.pg_locks kl ON kl.transactionid = bl.transactionid AND kl.pid …

2
เป็นไปได้ไหมที่จะมีผู้ใช้นับพันคนใน Postgres?
เรากำลังสร้าง SAAS ที่เราจะมีลูกค้ามากที่สุด 50,000 คน เรากำลังพิจารณาที่จะสร้างผู้ใช้ในฐานข้อมูล Postgres สำหรับลูกค้าแต่ละราย เราจะแมปผู้ใช้แต่ละรายที่ลงชื่อเข้าใช้บริการของเรากับผู้ใช้ในฐานข้อมูลเพื่อให้แน่ใจว่าพวกเขาสามารถเข้าถึงข้อมูลของตนเองได้เท่านั้น นอกจากนี้เรายังต้องการใช้แนวทางการตรวจสอบโดยตรงในฐานข้อมูลด้วยโซลูชั่นนี้ซึ่งใช้ทริกเกอร์ หากลูกค้าแต่ละรายมีผู้ใช้ฐานข้อมูลของตัวเองมันจะง่ายมากที่จะดูว่าใครทำอะไรแม้ว่าลูกค้าสองคนจะแบ่งปันข้อมูลเดียวกัน เราจะประสบปัญหาที่ไม่คาดคิดหรือไม่เพราะเรามีผู้ใช้งาน 50,000 คนในฐานข้อมูลของเราหรือไม่? ประสิทธิภาพที่ชาญฉลาดหรือการบริหารที่ชาญฉลาด อาจรวมการเชื่อมต่ออาจจะยากขึ้น แต่ฉันไม่รู้จริงๆว่าเราต้องการหรือไม่

2
Page Life Expectancy พูดถึงเรื่องนี้อย่างไร
ฉันได้ติดตั้งซอฟต์แวร์ตรวจสอบในอินสแตนซ์ของ SQL Server สองสามตัวในสภาพแวดล้อม ฉันพยายามค้นหาคอขวดและแก้ไขปัญหาด้านประสิทธิภาพ ฉันต้องการตรวจสอบว่าเซิร์ฟเวอร์บางแห่งต้องการหน่วยความจำเพิ่มเติมหรือไม่ ฉันสนใจในหนึ่งเคาน์เตอร์: อายุขัยหน้า มันดูแตกต่างในทุกเครื่อง ทำไมมันถึงเปลี่ยนบ่อยในบางกรณีและมันหมายถึงอะไร? โปรดดูข้อมูลจากสัปดาห์ที่แล้วที่รวบรวมบนเครื่องที่แตกต่างกันสองสามเครื่อง คุณจะพูดอะไรเกี่ยวกับแต่ละตัวอย่าง ใช้ตัวอย่างการผลิตอย่างหนัก (1): istance การผลิตที่ใช้ในระดับปานกลาง (2) ตัวอย่างการทดสอบที่ใช้ไม่ค่อย (3) ใช้ตัวอย่างการผลิตอย่างหนัก (4) ตัวอย่างทดสอบที่ใช้ในระดับปานกลาง (5) ใช้คลังข้อมูลอย่างหนัก (6) แก้ไข: ฉันกำลังเพิ่มเอาต์พุตของ SELECT @@ VERSION สำหรับเซิร์ฟเวอร์เหล่านี้ทั้งหมด: Instance 1: Microsoft SQL Server 2008 R2 (SP1) - 10.50.2500.0 (X64) Jun 17 2011 00:54:03 Copyright (c) Microsoft Corporation …

2
Simple DELETE แต่แผนการดำเนินการที่ซับซ้อน
เมื่อฉันเรียกใช้การลบนี้: DELETE FROM ETLHeaders WHERE ETLHeaderID < 32465870 ... ลบแถวที่ 39,157 ควรง่ายเพราะจะลบ ETLHeaderID ซึ่งเป็นดัชนีคลัสเตอร์และคีย์หลัก แต่ (ตามแผนการดำเนินการ) ดูเหมือนว่าจะมีการกดปุ่ม 361,190 แถวและใช้ดัชนีอื่น ตารางมีเขตข้อมูลที่มีชนิดข้อมูล XML (ในกรณีที่มีผลต่อการลบนี้) ความคิดใดที่เป็นสาเหตุและวิธีที่ฉันสามารถเร่งความเร็วการลบนี้ แผนการดำเนินการที่นี่: http://sharetext.org/qwDY สคีมาของตารางที่นี่: http://sharetext.org/Vl9j ขอบคุณ

1
ข้อผิดพลาด AlwaysOn Availability Group หลังจาก Windows Update ในสภาพแวดล้อมที่ไม่มีคลัสเตอร์ล้มเหลว
บริการ SQL Server ของเราหยุดทำงานในเช้าวันนี้ซึ่งทำให้เว็บไซต์บางแห่งของเราแย่ลง เมื่อฉันไปตรวจสอบ Windows Event Viewer ฉันเห็นข้อผิดพลาดดังต่อไปนี้: การอัปเกรดระดับสคริปต์สำหรับฐานข้อมูล 'ต้นแบบ' ล้มเหลวเนื่องจากขั้นตอนการอัปเกรด 'SSIS_hotfix_install.sql' พบข้อผิดพลาด 942 สถานะ 4 ความรุนแรง 25 ไม่สามารถกู้คืนฐานข้อมูลหลัก SQL Server ไม่สามารถเรียกใช้ กู้คืนข้อมูลหลักจากการสำรองข้อมูลเต็มรูปแบบซ่อมแซมหรือสร้างใหม่ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการสร้างฐานข้อมูลหลักดู SQL Server Books Online สิ่งแรกที่ฉันทำคือข้อผิดพลาดของ Google ในที่สุดฉันก็พบรายการฟอรัมที่มีปัญหาตรงและแก้ไขได้ (ในรายการบล็อกที่ฉันกำลังหาวิธีแก้ไข ) ปัญหาเกี่ยวข้องกับกลุ่ม AlwaysOn Availability และการแก้ไขกำหนดให้คุณ: เริ่มบริการ SQL Server ด้วยการติดตามค่าสถานะ 902: Net Start MSSQL $ InstanceName / T902 …

1
mongodb shard chunk migration 500GB ใช้เวลา 13 วัน - สิ่งนี้ช้าหรือปกติหรือไม่?
ฉันมี mongodb shard cluster, shard key ถูกแฮช มันมีชุดเลียนแบบ 2 ชิ้น ชุดจำลองแต่ละชุดมี 2 เครื่อง ฉันทำการทดลองโดยเพิ่มชุดจำลอง 2 ชิ้นอีกชุดและเริ่มปรับสมดุลใหม่ อย่างไรก็ตามหลังจากที่ในขณะที่ฉันพบว่าการโยกย้ายก้อนค่อนข้างช้า ใช้เวลา 1 ชั่วโมงในการย้ายข้อมูล 1.4GB มันทำให้ฉันกังวลมันหมายความว่าฉันต้องรอ 13 วันเพื่อให้การย้ายข้อมูลก้อนใหญ่เสร็จสมบูรณ์ 500GB! ฉันใหม่สำหรับสิ่งนี้และฉันไม่มีพระเจ้าที่รู้สึกว่ามันช้าเร็วหรือปกติ แต่ถึงกระนั้นตัวเลขเหล่านี้ก็ไม่ทำให้ฉันเชื่อ หมายเหตุเพิ่มเติมเกี่ยวกับการทดลอง: - การใช้เครื่อง m3 ขนาดกลาง aws - ไม่มีกระบวนการอื่นทำงานเพียงการโยกย้ายก้อน - การติดตั้ง mongodb sharding เริ่มต้นที่ไม่มีการกำหนดค่าเพิ่มเติม - shardkey กำลังใช้ hashed ที่ object id (_id) - ขนาดก้อนสูงสุด …

1
ข้อดีและข้อเสียของ Firebase สำหรับฐานข้อมูลคืออะไร
ขณะนี้ฉันกำลังพัฒนาเว็บไซต์เพื่อติดตามเครดิตที่ได้จากการสอบและวิธีการจัดเรียงเหล่านี้เทียบกับเครดิตเป้าหมายของผู้ใช้ ฉันกำลังมองหาระบบฐานข้อมูลที่จะจัดเก็บการสอบที่เป็นไปได้ทั้งหมดที่ใครบางคนสามารถทำได้ใน NCEA (ระบบการรับรองของนิวซีแลนด์) และเก็บเป้าหมายของผู้ใช้และผลลัพธ์ที่แท้จริงสำหรับการสอบ ฉันได้พิจารณาการใช้หน่วยเก็บข้อมูล Firebase, mySQL และ JSON พร้อมคำขอ GET และ POST เพื่อจัดเก็บและเปลี่ยนแปลงข้อมูล ข้อดีและข้อเสียของการใช้Firebaseเป็นฐานข้อมูลสำหรับสิ่งนี้คืออะไร

3
ชุดประกอบ 'system.web รุ่น = 4.0.0.0, วัฒนธรรม = เป็นกลาง, publickeytoken = b03f5f7f11d50a3a' ไม่พบในแคตตาล็อก SQL
ฉันพยายามปรับใช้ฟังก์ชัน SQL CLR โดยใช้วิธี HTTPUtility.UrlDecode ของ System.Web แต่ฉันไม่สามารถปรับใช้ ได้รับข้อผิดพลาด: ผู้ให้บริการข้อมูล Net SqlClient: ข่าวสารเกี่ยวกับ 6503 ระดับ 16 สถานะ 12 แอสเซมบลีบรรทัดที่ 1 'system.web รุ่น = 4.0.0.0 วัฒนธรรม = เป็นกลาง publickeytoken = b03f5f7f11d50a3a' ไม่พบในแคตตาล็อก SQL ฟังก์ชั่น (เป็นส่วนหนึ่งของโครงการ SSDT): using System; using System.Web; using System.Data; using System.Data.SqlClient; using System.Data.SqlTypes; using Microsoft.SqlServer.Server; public partial class …

2
MySQL Fabric และ MySQL Cluster ต่างกันอย่างไร
ฉันยังใหม่กับโลก MySQL และทั้งสองก็สับสน พวกเขาทั้งคู่ไม่ให้ความพร้อมใช้งานสูงและการแยกชิ้นส่วนใช่หรือไม่ นอกจากนี้ WebScaleSQL เปรียบเทียบอย่างไร

1
T-SQL - OPTION (FAST x) และค่าสถานะการติดตาม 8722
ฉันค้นหาเป็นเวลานานและยังไม่พบคำตอบสำหรับปัญหาของฉัน Dynamics AX ของเรากำลังสร้างการสืบค้นด้วยคำแนะนำการสืบค้น OPTION (FAST x) ซึ่งบางครั้งก็บังคับให้ใช้แผนการดำเนินการที่ไม่ดี ผู้พัฒนากล่าวว่าเป็นค่าเริ่มต้นและยากที่จะเปลี่ยนแปลง (ต้องแก้ไขในทุกรูปแบบที่อาจเกิดขึ้น) ดังนั้นฉันจึงใช้วิธีแทนที่คำแนะนำเหล่านี้โดยใช้ค่าสถานะการติดตาม ฉันพบการตั้งค่าสถานะการสืบค้นกลับที่น่ารัก 8722 ซึ่งอ้างว่าทำให้ SQL Server ไม่สนใจคำแนะนำการสืบค้นบางอย่างโดยเฉพาะอย่างยิ่งคำสั่งย่อยใน OPTION อย่างไรก็ตามนี่ไม่ได้ผลในกรณีของฉัน ฉันพยายามเปิดใช้งานการตั้งค่าสถานะการสืบค้นกลับ 8602 (ปิดใช้งานคำแนะนำดัชนี) เช่นกัน แต่แบบสอบถามของฉันยังคงทำงานด้วยคำใบ้ FAST x (มันช้ากว่าเมื่อฉันลบส่วนคำสั่ง OPTION ออก) ฉันพยายามล้างแคชแผนเช่นกันเพื่อประโยชน์ ความคิดใด ๆ ฉันไม่มีอะไรเลยหรือ PS ฉันเปิดใช้งานการตั้งค่าสถานะการติดตามทั่วโลกนี่คือ SQL Server 2012 Developer Edition

1
การติดตาม SQL Server ขึ้นอยู่กับพอร์ต TCP ของไคลเอ็นต์
ฉันมีเทอร์มินัลเซิร์ฟเวอร์ Windows ที่มีผู้ใช้หลายคนลงชื่อเข้าใช้ผ่าน RDP เพื่อเรียกใช้แอปพลิเคชัน แอปพลิเคชันทำให้การเชื่อมต่ออย่างน้อยหนึ่งรายการต่อผู้ใช้กับอินสแตนซ์ของ SQL Server 2008 R2 ผู้ใช้ทั้งหมดเข้าถึงฐานข้อมูลเดียวกันโดยใช้การเข้าสู่ระบบ SQL เดียวกัน ฉันต้องการที่จะสามารถติดตามเซสชัน SQL ของผู้ใช้เฉพาะ แต่ฉันไม่พบวิธีการตรวจสอบเซสชัน SQL ที่เป็นของผู้ใช้ที่ อย่างไรก็ตามฉันสามารถระบุพอร์ต TCP ต้นทางแต่ละอินสแตนซ์ของแอปพลิเคชันที่ใช้ มีวิธีการติดตามเซสชัน SQL ที่ยึดตามพอร์ต TCP ของลูกค้าหรือไม่

2
การแทรกหลายแถวเทียบกับการแทรกแถวเดี่ยวหลายครั้ง
ในแอพของฉันฉันจะแทรกหลายแถวเมื่อฉันทำได้เพราะมันช่วยลดจำนวนรอบการเดินทางระหว่างฐานข้อมูลและแอป อย่างไรก็ตามฉันอยากรู้อยากเห็นมีข้อดีอื่น ๆ อีกไหม? ตัวอย่างเช่นหากมีการแทรกหลายแถวพร้อมกันเช่นนี้ insert into tbl (c1, c2) values (v1, v2) (v3, v4) เมื่อเทียบกับ: insert into tbl (c1, c2) values (v1, v2) insert into tbl (c1, c2) values (v3, v4) และตารางมีดัชนีดัชนีคำนวณหนึ่งครั้งในกรณีแรกและสองครั้งในกรณีที่สองหรือไม่ หรือมันมักจะใส่ครั้งเดียวต่อ? สมมติว่าแบบสอบถามทั้งสองอยู่ในธุรกรรมเดียวกัน ฉันใช้ PostgreSQL

4
ไม่ทราบวิธีเปลี่ยนเอนทิตีของตัวแปรเป็นตารางสัมพันธ์
ข้อมูลเบื้องต้นและข้อมูลที่เกี่ยวข้อง: ตัวอย่างต่อไปนี้แสดงให้เห็นถึงปัญหาที่ฉันเผชิญ: สัตว์มีการแข่งขันซึ่งอาจจะเป็นแมวหรือสุนัข แมวสามารถเป็นได้ทั้งสยามหรือเปอร์เซีย สุนัขอาจจะเป็นคนเลี้ยงแกะเยอรมันหรือลาบราดอร์ retriver สัตว์เป็นหน่วยงานที่แข็งแกร่งในขณะที่การแข่งขันเป็นคุณลักษณะที่สามารถมีหนึ่งในสองค่าที่เสนอ (แมวหรือสุนัข) ค่าทั้งสองนี้ซับซ้อน (ฉันได้เพิ่มที่นี่เฉพาะประเภทของสุนัข / แมวเพื่ออธิบายปัญหา แต่อาจมีชื่อของแมว / สุนัขและสิ่งอื่น ๆ อีกมากมาย) ปัญหา: ฉันไม่ทราบวิธีสร้างตารางเชิงสัมพันธ์สำหรับตัวอย่างนี้ ความพยายามของฉันในการแก้ไขปัญหา: ฉันพยายามวาดแผนภาพ ER โดยใช้สัญลักษณ์ของเฉินซึ่งแสดงถึงปัญหา แต่เป็นมือใหม่ฉันไม่รู้ว่าทำถูกหรือไม่ นี่คือสิ่งที่ฉันได้รับ: ฉันขอโทษถ้าฉันทำอะไรผิดโปรดแก้ไขให้ฉันด้วยถ้าเป็นเช่นนั้น ฉันไม่ต้องการเพียงแค่รับ "วิธีแก้ปัญหาฟรี" แต่ยังต้องเรียนรู้วิธีจัดการกับปัญหานี้เพื่อที่ฉันจะสามารถแก้ไขได้ด้วยตัวเองในอนาคต สิ่งเดียวที่อยู่ในใจของฉันคือการสร้างสองตารางแยกต่างหากหนึ่งสำหรับแมวและหนึ่งสำหรับสุนัข นอกจากนี้แอตทริบิวต์การแข่งขันในตารางAnimalจะเก็บค่าแมวหรือค่าสุนัขเท่านั้น บางสิ่งเช่นนี้ Animal< # Animal_ID, race, other attributes > Cat < # Cat_ID, $ Animal_ID, breed > Dog < # …

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