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

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

2
Amazon RDS Postgresql เพิ่มส่วนขยายใหม่
ฉันต้องการดาวน์โหลดอินสแตนซ์jsonbxไปยัง RDS คุณสมบัติ RDS PostgreSQL รองรับการแสดงคุณสมบัติในตัวเท่านั้น นี่หมายความว่าไม่มีทางที่เราจะสามารถติดตั้งส่วนขยายไปยัง RDS ซึ่งไม่ได้อยู่ในฟีเจอร์เมทริกซ์ ? มีวิธีแก้ไขไหมสำหรับเรื่องนี้?

2
NoSQL: ข้อมูลที่ไม่มีโครงสร้างคืออะไร
ขณะนี้เรากำลังใช้ทรัพยากรที่มีอยู่ด้วยโซลูชั่น mssql เซิร์ฟเวอร์ของเรา ขณะนี้เรามีตัวเลือกแบบดั้งเดิมมากมายเกี่ยวกับการย้ายครั้งต่อไปเพื่อรับมือกับโหลด: ซื้อ CPU และ IO เร็วขึ้น แยกลูกค้าบางรายออกเป็นเซิร์ฟเวอร์แยกต่างหาก ย้าย db ไปยังคลัสเตอร์ ทั้งหมดมีราคาแพงทั้งในแง่ของลิขสิทธิ์และฮาร์ดแวร์หรือเวลา ดังนั้นฉันต้องการเพิ่มตัวเลือกอื่นโดยการย้ายทั้งระบบไปยังโซลูชันที่ปรับขนาดได้ซึ่งสัญญาของคาสซานดราเครื่องยนต์ nosql แต่ฉันไม่แน่ใจและไม่มีประสบการณ์กับฐานข้อมูล noSQL ดังนั้นฉันต้องเข้าใจโครงสร้างของข้อมูล "ที่ไม่มีโครงสร้าง" ในแอปพลิเคชันของเราเราจะจัดเก็บข้อมูลที่ผู้ใช้ป้อนในรูปแบบต่างๆเป็นรายการ "คีย์ - ค่า" มีตารางหลักที่มีองค์ประกอบส่วนหัว (เช่นคำสั่งซื้อ) และมีตารางลูกที่มีคู่ค่าคีย์ประกอบไปด้วยเนื้อหาของคำสั่งซื้อ (เช่น Order_Lines) หน่วยธุรกิจที่ชาญฉลาดคำสั่งซื้อและคำสั่งซื้อเป็นหน่วย แต่เนื่องจาก RDBMS พวกเขาจะถูกเก็บไว้ในตารางและจะต้องเข้าร่วมตลอดเวลา ในระหว่างการดำเนินการบางครั้งเราเลือกที่จะโหลดเฉพาะส่วนบน แต่ส่วนใหญ่เราโหลดแถวหลัก + KVP บางส่วนเพื่อแสดงข้อมูลที่เป็นประโยชน์ ตัวอย่างเช่นในรายการภาพรวมเราจะแสดงตัวระบุส่วนหัว + ค่าบางค่าในคอลัมน์สำหรับแต่ละแถว ปรับปรุง: เราเก็บรูปแบบใด ๆ ดังนั้นโดยทั่วไปเราจัดเก็บ "เอกสาร" อย่างไรก็ตามเราต้องจัดเตรียมและค้นหาในรูปแบบเหล่านี้ด้วยค่าใด ๆ การเรียงลำดับ ฯลฯ …

1
dm_exec_describe_first_result_set_for_object สำหรับชุดผลลัพธ์หลายชุด
มีขั้นตอนในการส่งคืนข้อมูลเมตาสำหรับชุดผลลัพธ์ทั้งหมดในกระบวนงานที่เก็บไว้หรือไม่ มีบางอย่างที่เหมือนsys.dm_exec_describe_first_result_set_for_objectกัน แต่สำหรับชุดผลลัพธ์ทั้งหมด ในที่สุดฉันจะต้องการค้นหาข้อมูลเมตาสำหรับทุกชุดผลลัพธ์ในทุกโพรซีเดอร์ที่เก็บในฐานข้อมูล สำหรับตอนนี้ฉันจะตัดสินให้เฉพาะชุดผลลัพธ์ที่sys.dm_exec_describe_first_result_set_for_objectไม่สามารถอธิบายได้ นั่นคือชุดผลลัพธ์ที่ 2, 3 และ Nth ดูที่การใช้ SQLCLR เพื่อทำสิ่งนี้ตอนนี้: วิธีบันทึกผลลัพธ์ของกระบวนงานที่มีชุดผลลัพธ์มากกว่าหนึ่งชุด - การทดสอบหน่วย DB สำหรับ SQL Server - ResultSetFilter.cs

3
zero-or-one ถึง zero-or-one
ฉันจะสร้างความสัมพันธ์แบบ zero-or-one ถึง zero-or-one ใน SQL Server เป็นวิธีที่เป็นธรรมชาติที่สุดได้อย่างไร มีตาราง 'อันตราย' ที่แสดงอันตรายบนไซต์ มีตาราง 'งาน' สำหรับงานที่ต้องทำบนไซต์ งานบางอย่างเพื่อแก้ไขอันตรายไม่มีงานใดที่สามารถจัดการกับอันตรายหลายอย่างได้ อันตรายบางอย่างมีหน้าที่แก้ไข ไม่มีอันตรายใด ๆ ที่เกี่ยวข้องกับภารกิจทั้งสองได้ ด้านล่างเป็นสิ่งที่ดีที่สุดที่ฉันนึกได้: CREATE TABLE [dbo].[Hazard]( [HazardId] [int] IDENTITY(1,1) NOT NULL, [TaskId] [int] NULL, [Details] [varchar](max) NULL, CONSTRAINT [PK_Hazard] PRIMARY KEY CLUSTERED ( [HazardId] ASC )) GO ALTER TABLE [dbo].[Hazard] WITH CHECK ADD …

3
“ FETCH API_CURSOR0000 …” มากมายบน sp_WhoIsActive (SQL Server 2008 R2)
ฉันมีสถานการณ์ที่แปลก ใช้sp_whoisactiveฉันเห็นสิ่งนี้: ตกลงด้วยคำถามนี้ฉันสามารถเห็นสิ่งที่เรียก (คำนี้มีอยู่ในภาษาอังกฤษ?) มัน: SELECT c.session_id, c.properties, c.creation_time, c.is_open, t.text FROM sys.dm_exec_cursors (SPID) c --0 for all cursors running CROSS APPLY sys.dm_exec_sql_text (c.sql_handle) t ผลลัพธ์: selectมันเป็นเรื่องง่าย ทำไมถึงใช้ f etch_cursor? นอกจากนี้ฉันเห็น sql_texts "blank" จำนวนมากด้วย สิ่งนี้มีบางอย่างกับ "เคอร์เซอร์" นี้หรือไม่? DBCC INPUTBUFFER (spid) แสดงให้ฉันเห็นนี้: มีคำถามนี้ที่ นี่ (ทำโดยฉัน) แต่ฉันไม่รู้ว่านี่เป็นสิ่งเดียวกันหรือไม่ EDIT1: เมื่อใช้เคียวรีที่จัดทำโดยญาติฉันเห็นสิ่งนี้ EDIT2: ใช้การตรวจสอบกิจกรรมฉันสามารถเห็นสิ่งนี้: มันเป็นข้อความค้นหาที่แพงที่สุด …

1
วิธีเรียกคืนพื้นที่ที่ใช้โดยดัชนีที่สร้างขึ้นบางส่วนและถูกยกเลิกโดยไฟฟ้าดับ
ฉันใช้ postgres (postgis) 9.4.2 บน mac (10.10.4) ฉันมีตารางใหญ่สองสามอัน (หลาย TB) ในระหว่างการสร้างดัชนีของหนึ่งในนั้นที่ใช้เวลาประมาณหนึ่งสัปดาห์ฉันดูการลดลงของพื้นที่ HD ที่มีอยู่ตามที่คุณคาดว่าจะถึงจุดที่ดัชนีจะเสร็จสิ้นเมื่อไฟฟ้าดับนานกว่าแบตเตอรี่และระบบ ลงไป. ฉันปิดบัฟเฟอร์และfillfactor=100ระหว่างการสร้างเนื่องจากเป็นแหล่งข้อมูลแบบคงที่ ในการรีบู๊ตพื้นที่ที่เหลืออยู่บนไดรฟ์จะอยู่ในตำแหน่งที่ใกล้ถึงจุดสิ้นสุดของการสร้างดัชนี การวิเคราะห์สูญญากาศไม่เพิ่มพื้นที่ว่าง ฉันลองวางโต๊ะแล้วนำเข้าไปใหม่และนั่นก็ไม่ได้ทำให้เนื้อที่ลดลง ตอนนี้ฉันอยู่ในสถานที่ที่ฉันมีพื้นที่ไม่เพียงพอที่จะสร้างดัชนี ไฟล์ถูกสร้างขึ้นในระหว่างการสร้างดัชนีติดอยู่ในบริเวณขอบรกบางส่วนที่ไม่สามารถลบออกได้โดยระบบเนื่องจากวิธีการที่เครื่องหยุดทำงานในระหว่างไฟฟ้าดับหรือไม่? เมื่อฉันมองไปที่ตารางขนาด + ดัชนีในฐานข้อมูล (ซึ่งเป็นเพียงข้อมูลในไดรฟ์นั้น) พวกเขาเพิ่มขึ้นประมาณ6TB ไดรฟ์คือ8TBและเหลือน้อยกว่า500GBบนไดรฟ์ดังนั้นดูเหมือนว่าจะมีประมาณ 1.5TB ที่หายไปที่ไหนสักแห่งซึ่งมีขนาดเท่ากับดัชนีที่น่าจะเป็น ความคิดใด ๆ

1
บริการเซิร์ฟเวอร์ SQL ว่างในการกำหนดค่าเซิร์ฟเวอร์ SQL
เมื่อฉันอัพเกรดจาก Windows 8.1 เป็น Windows 10 ฉันสังเกตว่า SQL Server Services ใน SQL Server Configuration Manager ว่างเปล่า SQL Server ยังคงทำงานได้อย่างสมบูรณ์แบบในขณะนี้ มีการติดตั้ง SQL Server 2014 บนเครื่องท้องถิ่น ฉันได้อ่านบล็อก - https://www.mssqltips.com/sqlservertip/2492/why-is-sql-server-configuration-manager-missing-services/และ http://www.sqlservercentral.com/Forums/Topic1469391- 1292-1.aspxและยังไม่สามารถแก้ไขปัญหาได้ ฉันสำรองฐานข้อมูลถอนการติดตั้งและติดตั้งใหม่แล้ว แต่โหนดยังคงว่างเปล่า ฉันควรทำอย่างไรดี? อัปเดตด้วยภาพหน้าจอ หน้าจอตัวจัดการการกำหนดค่าเซิร์ฟเวอร์ SQL

2
เรียกใช้แบบสอบถามที่ซับซ้อนสำหรับทุกวันในช่วง
ฉันมีตารางคำสั่งซื้อแล้ว Column | Type | Modifiers ------------+-----------------------------+----------------------------------------------------- id | integer | not null default nextval('orders_id_seq'::regclass) client_id | integer | not null start_date | date | not null end_date | date | order_type | character varying | not null ข้อมูลมีคำสั่งยืนไม่ทับซ้อนกันสำหรับ client_id และบางครั้งคำสั่งชั่วคราวที่แทนที่คำสั่งหยุดงานใน start_date เมื่อพวกเขามี client_id ที่ตรงกัน มีข้อ จำกัด ในระดับแอปพลิเคชันทำให้คำสั่งซื้อประเภทเดียวกันไม่ทับซ้อนกัน id | …

2
หน่วยความจำสูงสุดของ sql server รวมถึง SSIS หรือไม่
ฉันได้ติดตั้ง sql server 2 อินสแตนซ์และ SSIS บนเซิร์ฟเวอร์ต่อไปนี้ โปรดสังเกตว่า RAM มีค่าเกือบ 384 GB และนี่คือการตั้งค่าหน่วยความจำสูงสุดและต่ำสุดที่ฉันใช้กับ 2 อินสแตนซ์ของฉัน ฉันสมมติว่าทั้งสองอินสแตนซ์จะใช้ทรัพยากรในปริมาณที่เท่ากันหากเป็นเช่นนั้น 184,320 MB ซึ่งเป็น 180 GB เป็นหมายเลขเริ่มต้นที่ดีในการตั้งค่าหน่วยความจำของฉัน ฉันจะจัดสรรหน่วยความจำให้กับ SSIS เท่าไหร่

3
สำรองข้อมูลด้วย mongoexport หรือ mongodump?
สำหรับการสำรองข้อมูลการผลิต MongoDB แนะนำMongoDumpแทนMongoexportเพื่อความถูกต้องของข้อมูล อย่างไรก็ตามฉันจะต้อง "ขัดข้อมูล" ออกจากฐานข้อมูล MongoDB ก่อนสำรองข้อมูล ผมไม่ทราบข้อมูลด้านเซิร์ฟเวอร์ใดตัวเลือกอื่น ๆ กว่าขัดmongoexport สองคำถาม: ไม่mongoexportเข้าถึง MongoDB แคชในแรม? มันจะเปลี่ยนชุดการทำงานใน RAM เหมือนmongodumpหรือไม่? mongodumpคำสั่งมีนี้--queryตัวเลือก "จัดเตรียมเอกสาร JSON เป็นเคียวรีที่ จำกัด ทางเลือกเอกสารที่รวมในเอาต์พุตของ mongodump" ต้องใช้แบบสอบถามเพื่อแยกเขตข้อมูลบางอย่างในเอกสารหรือไม่
9 backup  mongodb 

2
การจัดรูปแบบรหัสนักพัฒนา SQL
ฉันเพิ่งตัด 'n' วางรหัส SQL บางส่วนลงในนักพัฒนา SQL (4.0.2.15) ฉันมีชุดระยะขอบด้านขวาและเลือก CTRL + F7 เพื่อจัดรูปแบบ อย่างไรก็ตามฉันมีสองปัญหา รหัสนั้นกว้างกว่าระยะขอบขวาที่ฉันตั้งไว้ คำหลักอยู่ในเมืองหลวงและมาตรฐานการเข้ารหัสที่นี่เป็นตัวพิมพ์เล็ก ฉันไม่สามารถหาวิธีการเปลี่ยนแปลงหรือเป็นไปได้?

3
มันมีเหตุผลที่จะทำเครื่องหมายคอลัมน์ทั้งหมด แต่เป็นหนึ่งในคีย์หลัก?
ฉันมีโต๊ะที่เป็นตัวแทนของภาพยนตร์ เขตข้อมูลคือ: id (PK), title, genre, runtime, released_in, tags, origin, downloads. ฐานข้อมูลของฉันไม่สามารถปนเปื้อนด้วยแถวที่ซ้ำกันดังนั้นฉันต้องการบังคับใช้ซ้ำ ปัญหาคือว่าภาพยนตร์ที่แตกต่างกันอาจมีชื่อเดียวกันหรือแม้กระทั่งเขตเดียวกันยกเว้นและtags downloadsวิธีการบังคับใช้เอกลักษณ์? ฉันคิดถึงสองวิธี: สร้างฟิลด์ทั้งหมดยกเว้นdownloadsคีย์หลัก ฉันติดตามdownloadsเพราะมันเป็น JSON และอาจส่งผลกระทบต่อประสิทธิภาพการทำงาน เก็บidเป็นคีย์หลักเท่านั้น แต่เพิ่มข้อ จำกัด ที่ไม่ซ้ำกับคอลัมน์อื่น ๆ ทั้งหมด (ยกเว้นอีกครั้งdownloads) ฉันอ่านคำถามซึ่งคล้ายกันมาก แต่ฉันไม่เข้าใจว่าฉันควรทำอย่างไร ขณะนี้ตารางนี้ไม่เกี่ยวข้องกับตารางอื่น ๆ แต่ในอนาคตอาจเป็น ในขณะนี้ฉันมีบันทึกน้อยกว่า 20,000 รายการเล็กน้อย แต่ฉันคาดว่าจำนวนจะเพิ่มขึ้น ฉันไม่รู้ว่าสิ่งนี้เกี่ยวข้องกับปัญหาหรือไม่ แก้ไข:ฉันแก้ไขสคีมาและนี่คือวิธีที่ฉันจะสร้างตาราง: CREATE TABLE movies ( id serial PRIMARY KEY, title text NOT NULL, runtime …

1
เอาชนะการผสานเข้าร่วม (สแกนดัชนี) ด้วยค่าคีย์เดี่ยวอย่างชัดเจนบนคีย์ต่างประเทศ
เพิ่ม 7/11ปัญหานี้เกิดจากการหยุดชะงักเนื่องจากการสแกนดัชนีระหว่าง MERGE JOIN ในกรณีนี้ธุรกรรมที่พยายามรับ S lock ในดัชนีทั้งหมดที่ตารางหลัก FK แต่ก่อนหน้านี้ธุรกรรมอื่นวาง X lock ไว้ในค่าคีย์ของดัชนี ให้ฉันเริ่มต้นด้วยตัวอย่างเล็ก ๆ (ใช้ TSQL2012 DB จาก 70-461 cource): CREATE TABLE [Sales].[Orders]( [orderid] [int] IDENTITY(1,1) NOT NULL, [custid] [int] NULL, [empid] [int] NOT NULL, [shipperid] [int] NOT NULL, ... ) คอลัมน์[custid], [empid], [shipperid]เป็นพารามิเตอร์ที่มีการเชื่อมโยงกัน[Sales].[Customers], [HR].[Employees], [Sales].[Shippers]ตามลำดับ ในแต่ละกรณีเรามีดัชนีคลัสเตอร์ในคอลัมน์ที่อ้างถึงในตาราง parrent ALTER …

2
“ ข้อผิดพลาด: ตัวอักษรของอาเรย์ที่ผิดรูปแบบ” เมื่อใช้ json_to_record กับอิลิเมนต์อาร์เรย์ JSON ใน Postgres 9.4
นี่แสดงให้เห็นปัญหาอย่าง: เมื่อคอลัมน์ b เป็นข้อความประเภท แต่ไม่ใช่อาร์เรย์จะทำงานดังต่อไปนี้: select * from json_to_record('{"a":1,"b":["hello", "There"],"c":"bar"}') as x(a int, b text, d text); a | b | d ---+--------------------+--- 1 | ["hello", "There"] | แต่ถ้าฉันกำหนดbคอลัมน์เป็นอาร์เรย์ฉันจะได้รับข้อผิดพลาดนี้: select * from json_to_record('{"a":1,"b":["hello", "There"],"c":"bar"}') as x(a int, b text[], d text) ERROR: malformed array literal: "["hello", "There"]" DETAIL: "[" must …

2
ค้นหาแถวที่มีเลขจำนวนเต็มตามลำดับที่กำหนด
ปัญหา หมายเหตุ: ผมหมายถึงลำดับคณิตศาสตร์ไม่ใช่กลไกลำดับของ PostgreSQL ฉันมีตารางที่แสดงลำดับของจำนวนเต็ม ความหมายคือ: CREATE TABLE sequences ( id serial NOT NULL, title character varying(255) NOT NULL, date date NOT NULL, sequence integer[] NOT NULL, CONSTRAINT "PRIM_KEY_SEQUENCES" PRIMARY KEY (id) ); เป้าหมายของฉันคือการหาแถวโดยใช้ลำดับที่กำหนด กล่าวคือแถวที่sequenceเขตข้อมูลเป็นลำดับที่มีการเรียงลำดับที่กำหนด (ในกรณีของฉันลำดับจะเรียงตามลำดับ) ตัวอย่าง สมมติว่าตารางมีข้อมูลต่อไปนี้: +----+-------+------------+-------------------------------+ | id | title | date | sequence | +----+-------+------------+-------------------------------+ | …

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