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

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

2
การปรับแผนให้เหมาะสมด้วยตัวอ่าน XML
ดำเนินการค้นหาจากที่นี่เพื่อดึงเหตุการณ์ deadlock ออกจากเซสชันเพิ่มเติมของเหตุการณ์ที่ขยายเริ่มต้น SELECT CAST ( REPLACE ( REPLACE ( XEventData.XEvent.value ('(data/value)[1]', 'varchar(max)'), '<victim-list>', '<deadlock><victim-list>'), '<process-list>', '</victim-list><process-list>') AS XML) AS DeadlockGraph FROM (SELECT CAST (target_data AS XML) AS TargetData FROM sys.dm_xe_session_targets st JOIN sys.dm_xe_sessions s ON s.address = st.event_session_address WHERE [name] = 'system_health') AS Data CROSS APPLY TargetData.nodes ('//RingBufferTarget/event') AS …

2
คุณจะหยุดใช้ออฟไลน์และลบฐานข้อมูล SQL Server ในการกู้คืนได้อย่างไร
ฉันมีฐานข้อมูลการพัฒนาที่ได้เข้าสู่โหมดการกู้คืนเมื่อรีสตาร์ทและได้รับการกู้คืนในชั่วโมงสุดท้ายหรือมากกว่านั้น ฉันจำเป็นต้องหยุดการกู้คืนหรือฆ่ามันด้วยวิธีใดวิธีหนึ่ง ฉันไม่สนใจเกี่ยวกับฐานข้อมูลหรือข้อมูลใด ๆ เลยฉันมีสคริปต์การปรับใช้ ความคิดใด ๆ

4
LocalDB v14 สร้างเส้นทางที่ผิดสำหรับไฟล์ mdf
เมื่อเร็ว ๆ นี้ฉันอัพเกรด LocalDB จากรุ่น 13 เป็น 14 โดยใช้โปรแกรมติดตั้ง SQL Server Express และคำสั่งนี้ หลังจากการติดตั้งฉันหยุดอินสแตนซ์เริ่มต้นที่มีอยู่ (MSSQLLOCALDB) เวอร์ชัน 13 และสร้างขึ้นใหม่ซึ่งใช้เอ็นจิ้นเซิร์ฟเวอร์ v14.0.1000 โดยอัตโนมัติ ฉันมักจะใช้การทดสอบ LocalDB for Database Integration เช่นในการทดสอบ xunit ของฉันฉันสร้างฐานข้อมูล (ชั่วคราว) ซึ่งจะถูกลบเมื่อการทดสอบเสร็จสิ้น ตั้งแต่เวอร์ชันใหม่โชคไม่ดีที่การทดสอบทั้งหมดของฉันล้มเหลวเนื่องจากข้อความแสดงข้อผิดพลาดต่อไปนี้: สร้างไฟล์พบข้อผิดพลาดของระบบปฏิบัติการ 5 (ปฏิเสธการเข้าถึง) ในขณะที่พยายามเปิดหรือสร้างไฟล์ฟิสิคัล 'C: \ Users \ kepflDBd0811493e18b46febf980ffb8029482a.mdf' สิ่งแปลกคือเส้นทางเป้าหมายสำหรับไฟล์ mdf ไม่ถูกต้องแบ็กสแลชหายไประหว่างC: \ Users \ kepflและDBd0811493e18b46febf980ffb8029482a.mdf (ซึ่งเป็นชื่อฐานข้อมูลแบบสุ่มสำหรับการทดสอบเดี่ยว) ฐานข้อมูลถูกสร้างผ่านคำสั่งง่าย ๆCREATE …

3
เหตุใดแบบสอบถามแบบ SELECT จะทำให้เกิดการเขียน
ฉันสังเกตว่าบนเซิร์ฟเวอร์ที่ใช้ SQL Server 2016 SP1 CU6 บางครั้งเซสชันเพิ่มเติมของกิจกรรมจะแสดงคิวรี SELECT ซึ่งทำให้เกิดการเขียน ตัวอย่างเช่น: แผนการดำเนินการไม่แสดงสาเหตุที่ชัดเจนสำหรับการเขียนเช่นตารางแฮชสปูลหรือการเรียงลำดับที่สามารถรั่วไหลไปที่ TempDB: การกำหนดตัวแปรให้กับประเภท MAX หรือการอัปเดตสถิติอัตโนมัติอาจทำให้เกิดสิ่งนี้ได้เช่นกัน แต่ก็ไม่ได้เป็นสาเหตุของการเขียนในกรณีนี้ การเขียนอาจมาจากอะไรอีก?

2
Timeseries: SQL หรือ NoSQL
ฉันไม่สนใจความแตกต่างทั่วไประหว่าง SQL และ NoSQL (หรือความแตกต่างแบบดั้งเดิม) ขณะนี้ฉันกำลังค้นหาการเปลี่ยนแปลงการจัดเก็บข้อมูลอนุกรมเวลาภายในของเรา พวกเขาทั้งหมดมีข้อมูลทางการเงินจากแหล่งต่าง ๆ จำนวนมาก ขณะนี้เรากำลังจัดเก็บข้อมูลของเราในฐานข้อมูลที่เป็นกรรมสิทธิ์ มันเป็น NoSQL ที่มีภาษาคิวรีเป็นของตัวเอง ฉันสนใจอินพุตชุมชน: คุณจะเก็บข้อมูลในฐานข้อมูล SQL ได้อย่างไร มีข้อดีสำหรับการใช้ SQL ผ่าน NoSQL โดยเฉพาะสำหรับอนุกรมเวลาหรือไม่ ฉันบ้าที่จะต้องพิจารณาเก็บมันไว้ใน SQL หรือไม่? ชุดข้อมูลของเราประกอบด้วยอนุกรมเวลานับล้านชุดโดยมีประมาณ 10% ของชุดข้อมูลเหล่านี้ประกอบด้วยระเบียนนับล้านรายการ อนุกรมเวลาจัดเรียงตามลำดับชั้น: / Market / Instrument / Value / Frequency โดยที่: ตลาดคือการแลกเปลี่ยนหลักทรัพย์ ฯลฯ โดยทั่วไปเป็นชุดของตราสารมักจะเป็นตราสารที่คล้ายกัน เครื่องดนตรีเป็นเครื่องมือ นี่อาจเป็นตัวบ่งชี้ (Brent Crude), equity (GOOG) เป็นต้น ค่าเป็นหนึ่งในหลาย ๆ …
33 nosql 

1
มีข้อจำกัดความยาวสูงสุดสำหรับคิวรี Postgres หรือไม่
แอปที่เรากำลังสร้างอาจเรียกใช้คิวรีแทรกขนาดใหญ่ได้ มีข้อ จำกัด หรือไม่ที่แบบสอบถาม postgres ของฉันสามารถมีอักขระได้จำนวนเท่าใด
33 postgresql 

4
เหตุใด SQL Server จึงส่งคืนแถวบางแถวขณะที่ยังดำเนินการค้นหาและบางครั้งไม่
มีข้อความค้นหาที่เมื่อเรากด "execute" มันจะแสดงบางแถวและมันจะเพิ่มขึ้นเรื่อย ๆ แต่แบบสอบถามนั้นยังไม่จบ แต่บางครั้งมันจะรอจนกว่าจะสิ้นสุดการสืบค้น ทำไมสิ่งนี้ถึงเกิดขึ้น มีวิธีควบคุมสิ่งนี้หรือไม่?
33 sql-server  ssms 

4
ประสิทธิภาพของเซิร์ฟเวอร์ SQL ช้าลงหลังจากจัดสรร CPU และ RAM เพิ่มเติม
เรามี SQL Server 2008 R2 (10.50.1600) ที่ทำงานบนเซิร์ฟเวอร์ Windows 2008 R2 เสมือน หลังจากอัปเกรด CPU จาก 1 คอร์เป็น 4 และแรมจาก 4 gb เป็น 10 gb เราได้สังเกตเห็นว่าประสิทธิภาพแย่ลง ข้อสังเกตบางอย่างที่ฉันเห็น: ข้อความค้นหาที่ใช้เวลา <5 วินาทีในการทำงาน> 200 วินาที ซีพียูถูกตรึงที่ 100 กับ sqlservr.exe เป็นผู้ร้าย จำนวนที่เลือก (*) บนตารางที่มี 4.6 ล้านแถวใช้เวลามากกว่า 90 วินาที กระบวนการที่ทำงานบนเซิร์ฟเวอร์ไม่ได้เปลี่ยนแปลง การเปลี่ยนแปลงเพียงอย่างเดียวคือการเพิ่มซีพียูและแรม เซิร์ฟเวอร์ sql อื่นมีไฟล์เก็บเพจแบบสแตติกซึ่งเซิร์ฟเวอร์นี้ถูกตั้งค่าให้จัดการด้วยตนเอง มีใครประสบปัญหานี้มาก่อนหรือไม่ ต่อ sp_Blitz …

2
รีเฟรชมุมมอง materalized ที่เพิ่มขึ้นใน PostgreSQL
เป็นไปได้ไหมที่จะรีเฟรชมุมมองที่เป็นรูปธรรมเพิ่มขึ้นใน PostgreSQL เช่นสำหรับข้อมูลที่ใหม่หรือมีการเปลี่ยนแปลงเท่านั้น พิจารณาตารางนี้และมุมมองที่ปรากฏขึ้น: CREATE TABLE graph ( xaxis integer NOT NULL, value integer NOT NULL, ); CREATE MATERIALIZED VIEW graph_avg AS SELECT xaxis, AVG(value) FROM graph GROUP BY xaxis มีการเพิ่มค่าใหม่เป็นระยะgraphหรือปรับปรุงค่าที่มีอยู่เป็นระยะ ฉันต้องการรีเฟรชมุมมองgraph_avgทุกสองสามชั่วโมงเฉพาะค่าที่อัปเดต อย่างไรก็ตามใน PostgreSQL 9.3 ตารางทั้งหมดจะถูกรีเฟรช ใช้เวลาค่อนข้างนาน เวอร์ชันถัดไป 9.4 อนุญาตให้CONCURRENTอัพเดต แต่ยังคงรีเฟรชมุมมองทั้งหมด ด้วยจำนวนแถว 100 ล้านแถวซึ่งใช้เวลาไม่กี่นาที เป็นวิธีที่ดีในการติดตามการปรับปรุงและค่าใหม่และฟื้นฟูมุมมองเพียงบางส่วนเท่านั้น?

1
ตัวอย่างไฟล์การกำหนดค่า YAML สำหรับ MongoDB?
MongoDB เอกสารตั้งค่าตัวเลือกรายชื่อตัวเลือกทั้งหมดที่มีอยู่ที่สามารถระบุ แต่ไม่มีใครมีชุดของตัวอย่างที่เกิดขึ้นอย่างเต็มที่ YAML จัดรูปแบบไฟล์การกำหนดค่าสำหรับกรณี MongoDB ในบทบาทต่าง ๆ หรือไม่? ชุดของตัวอย่างสำหรับบทบาททั่วไปจะเป็นจุดเริ่มต้นที่มีประโยชน์มากสำหรับผู้ที่เริ่มต้นจากศูนย์หรือค้นหาเพื่อทดสอบกับรูปแบบไฟล์การกำหนดค่าล่าสุด
33 mongodb 

1
การตั้งค่า BUFFERCOUNT, BLOCKSIZE และ MAXTRANSFERSIZE สำหรับคำสั่ง BACKUP
ฉันกำลังมองหาการปฏิบัติคำแนะนำสำหรับการตั้งค่าสำหรับBUFFERCOUNT, BLOCKSIZEและMAXTRANSFERSIZEของBACKUPคำสั่ง ฉันได้ทำการวิจัยนิดหน่อย (ดูด้านล่าง) ฉันได้ทำการทดสอบแล้วและฉันก็ตระหนักดีว่าคำตอบที่มีค่าอย่างแท้จริงจะเริ่มต้นด้วย "ดีขึ้นอยู่กับ ... " ความกังวลของฉันเกี่ยวกับการทดสอบที่ฉันได้ทำและการทดสอบที่แสดงในแหล่งข้อมูลใด ๆ ที่ฉันได้พบ (ดูวิธีด้านล่าง) คือการทดสอบจะทำในสุญญากาศซึ่งเป็นไปได้มากที่สุดในระบบที่ไม่มีโหลดอื่น ๆ ฉันอยากรู้เกี่ยวกับแนวทางที่ถูกต้อง / แนวปฏิบัติที่ดีที่สุดเกี่ยวกับสามตัวเลือกเหล่านี้ซึ่งยึดตามประสบการณ์ระยะยาว: มีจุดข้อมูลจำนวนมากในช่วงสัปดาห์หรือเป็นเดือน และฉันไม่ได้มองหาค่าที่เฉพาะเจาะจงเนื่องจากส่วนใหญ่เป็นฟังก์ชั่นของฮาร์ดแวร์ที่มีอยู่ แต่ฉันต้องการที่จะรู้ว่า: ปัจจัยฮาร์ดแวร์ / โหลดที่หลากหลายมีผลต่อสิ่งที่ควรทำ มีสถานการณ์ใดบ้างที่ไม่ควรแทนที่ค่าเหล่านี้? มีข้อผิดพลาดในการเอาชนะสิ่งเหล่านี้ที่ไม่ชัดเจนในทันทีหรือไม่? ใช้หน่วยความจำและ / หรือดิสก์ I / O มากเกินไปหรือไม่ มีความซับซ้อนในการกู้คืนการดำเนินการ? ถ้าฉันมีเซิร์ฟเวอร์ที่มีหลายอินสแตนซ์ของ SQL Server ทำงาน (เป็นค่าเริ่มต้นอินสแตนซ์และสองอินสแตนซ์ที่มีชื่อ) และหากฉันใช้การสำรองข้อมูลของทั้ง 3 อินสแตนซ์พร้อม ๆ กันไม่ว่าส่งผลกระทบต่อวิธีการที่ฉันตั้งค่าเหล่านี้เกินกว่าการทำให้แน่ใจว่าส่วนรวม ( BUFFERCOUNT* MAXTRANSFERSIZE) ไม่เกิน RAM ที่มีอยู่หรือไม่ การต่อสู้ …

2
ISO Week กับ SQL Server Week
โอเคฉันมีรายงานที่ทำเปรียบเทียบสัปดาห์นี้กับสัปดาห์ที่แล้วและลูกค้าของเราสังเกตเห็นว่าข้อมูลของพวกเขานั้น "ขี้ขลาด" จากการตรวจสอบเพิ่มเติมเราพบว่ามันไม่ได้ทำอย่างถูกต้องเป็นสัปดาห์ตามมาตรฐาน ISO ฉันรันสคริปต์นี้เป็นกรณีทดสอบ SET DATEFIRST 1 SELECT DATEPART(WEEK, '3/26/13') , DATEPART(WEEK, '3/27/12') , DATEPART(WEEK, '3/20/12') , DATEPART(WEEK, '1/2/12') SELECT DATEPART(ISO_WEEK, '3/26/13') , DATEPART(ISO_WEEK, '3/27/12') , DATEPART(ISO_WEEK, '3/20/12') , DATEPART(ISO_WEEK, '1/2/12') เมื่อรันฉันจะได้ผลลัพธ์เหล่านี้ ฉันคิดว่านี่เป็นเรื่องแปลกและดังนั้นฉันจึงขุดเพิ่มเติมและพบว่า SQL Server นับ 1 มกราคมเป็นสัปดาห์แรกของปีที่ ISO นับวันอาทิตย์แรกของเดือนมกราคมเป็นสัปดาห์แรกของปี คำถามนั้นจบลงด้วยการเป็นสองเท่า คำถามที่ 1 ทำไมนี่คืออะไร คำถามที่ 2 มีวิธีใดบ้างที่จะเปลี่ยนแปลงสิ่งนี้ดังนั้นฉันไม่ต้องแก้ไขโค้ดทั้งหมดเพื่อใช้ในISO_Weekทุกที่ใช่ไหม

3
ประสิทธิภาพของ CPU นั้นเกี่ยวข้องกับเซิร์ฟเวอร์ฐานข้อมูลหรือไม่
นี่เป็นคำถามเชิงทฤษฎีอย่างแท้จริง สมมติว่าฉันมีแอปพลิเคชันที่ปรับใช้บนเซิร์ฟเวอร์หลายเครื่อง เครื่องถ่วงโหลด เซิร์ฟเวอร์แอพพลิเคชั่นหลายตัว / ปรับขนาดได้ เซิร์ฟเวอร์ฐานข้อมูล A (เดี่ยว) (ในขณะนี้) ในสองส่วนแรกฉันรู้ว่าต้องหาอะไร แต่เซิร์ฟเวอร์ฐานข้อมูลล่ะ ฉันควรมองหาฮาร์ดแวร์ชนิดใด ความถี่ซีพียูเกี่ยวข้องกับเซิร์ฟเวอร์ฐานข้อมูลหรือไม่ ซีพียูหลายคอร์มีความเกี่ยวข้องหรือไม่? RAM สำคัญกว่า CPU หรือไม่ PS: หากว่าฐานข้อมูลที่เลือกคือ MySQL หรือ PostgreSQL

3
มีข้อเสียสำหรับฐานข้อมูลที่มีอยู่หรือไม่?
SQL Server 2012 นำเสนอแนวคิดของฐานข้อมูล "ที่มีอยู่" ซึ่งทุกอย่าง (ส่วนใหญ่ทุกอย่าง) ความต้องการของฐานข้อมูลนั้นมีอยู่ภายในฐานข้อมูลนั้นเอง สิ่งนี้มีข้อได้เปรียบที่ยิ่งใหญ่เมื่อย้ายฐานข้อมูลระหว่างเซิร์ฟเวอร์ ฉันอยากรู้ว่าถ้านี่เป็นกลยุทธ์เริ่มต้นของฉันเมื่อออกแบบฐานข้อมูลใหม่ MSDN แสดงข้อเสียหลายประการสำหรับฐานข้อมูลที่มีอยู่และสิ่งที่สำคัญคือขาดการสนับสนุนสำหรับการติดตามการเปลี่ยนแปลงและการจำลองแบบ มีคนอื่นไหม? ถ้าฉันจะไม่ใช้คุณสมบัติเหล่านี้มีเหตุผลใดที่จะไม่ใช้ฐานข้อมูลที่มีอยู่หรือไม่

5
เหตุใดจึงเลือกอย่างง่ายบน InnoDB 100x ช้ากว่าบน MyISAM
ฉันมีปัญหาค่อนข้างน่ารำคาญ ฉันต้องการใช้ INNODB เป็นเอ็นจิ้นฐานข้อมูลหลักของฉันและยอมแพ้กับ MyISAM เพราะฉันต้องการรุ่นเก่าสำหรับการใช้ galera-cluster เพื่อความซ้ำซ้อน ฉันคัดลอก (คำอธิบายด้านล่าง) newbb_postตารางเป็นตารางใหม่ที่เรียกว่าnewbb_innopostและเปลี่ยนเป็น InnoDB ขณะนี้ตารางเก็บ5,390,146ข้อมูลแต่ละรายการ การรันตัวเลือกเหล่านี้บนฐานข้อมูลที่เพิ่งเริ่มต้นใหม่ (ดังนั้นจึงไม่มีการแคชใด ๆ เกี่ยวข้องในจุดนี้!) ฐานข้อมูลให้ผลลัพธ์ต่อไปนี้ (ไม่แสดงผลลัพธ์ทั้งหมดโปรดทราบว่าฉันไม่ได้ขอให้ฐานข้อมูลเรียงลำดับผลลัพธ์): เลือก post.postid, post.attach จาก newbb_post เป็นโพสต์ WHERE post.threadid = 51506; . . | 5401593 | 0 | | 5401634 | 0 | + --------- + -------- + 62510 แถวในชุด (0.13 วินาที) …

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