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

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

2
การใช้ฟังก์ชั่นหน้าต่างเพื่อส่งต่อค่าที่ไม่ใช่ค่าว่างในพาร์ติชัน
พิจารณาตารางที่บันทึกการเข้าชม create table visits ( person varchar(10), ts timestamp, somevalue varchar(10) ) พิจารณาข้อมูลตัวอย่างนี้ (การประทับเวลาประยุกต์เป็นตัวนับ) ts| person | somevalue ------------------------- 1 | bob |null 2 | bob |null 3 | jim |null 4 | bob | A 5 | bob | null 6 | bob | B 7 | jim | …

1
ขนาดตัวอย่างเริ่มต้นของสถิติใน SQL Server คืออะไร
จากMSDN : เมื่อไม่มีการ(SAMPLE, FULLSCAN, RESAMPLE)ระบุตัวเลือกตัวอย่างเครื่องมือเพิ่มประสิทธิภาพการสืบค้นจะสุ่มตัวอย่างข้อมูลและคำนวณขนาดตัวอย่างเป็นค่าเริ่มต้น จะระบุขนาดตัวอย่างเริ่มต้นของสถิติได้อย่างไร ฉันผ่าน MSDN แต่ไม่พบสูตรหรือวิธีการใด ๆ ในการระบุขนาดตัวอย่างเริ่มต้น ทุกที่มีเพียงสูตรที่แสดงเพื่อทริกเกอร์การอัปเดตสถิติอัตโนมัติ ตัวชี้ใด ๆ จะเป็นประโยชน์

1
แทรกผลลัพธ์จากกระบวนงานที่เก็บไว้ในตัวแปรตาราง
ฉันมีขั้นตอนการจัดเก็บที่เก็บค่าในตัวแปรตาราง ฉันเลือกค่าเหล่านี้และส่งคืนเมื่อเรียกใช้โพรซีเดอร์ ฉันกำลังพยายามตั้งค่าส่งคืนเหล่านี้ในตัวแปรตารางอื่น แต่ฉันไม่สามารถหามันได้ ขั้นตอนการเก็บ ALTER PROCEDURE [dbo].[GetOrSetDomainId] @DomainName varchar(50), @DomainUrl varchar(50) AS BEGIN DECLARE @DomainId bigint; DECLARE @NumberOfRwos bigint; DECLARE @DomainHistory TABLE ( DomainId bigint, HasHistory bit, ServerOnline bit, DatabaseOnline bit, ServerPerformance bigint, DatabasePerformance bigint, SoldTickets bigint ) SELECT @NumberOfRwos = COUNT(Id) FROM DomainData WHERE DomainName = @DomainName OR …

3
เปลี่ยนค่าเริ่มต้นทั้งระบบสำหรับ maxrecursion
ฉันจะเปลี่ยนค่าเริ่มต้นของทั้งระบบได้MAXRECURSIONอย่างไร โดยค่าเริ่มต้นคือ 100 แต่ฉันต้องเพิ่มเป็น 1,000 เช่น ฉันไม่สามารถใช้คำแนะนำการสืบค้นได้เนื่องจากฉันกำลังใช้โปรแกรมที่ใช้การสืบค้นของฉันและดำเนินการให้ฉันและฉันไม่สามารถแก้ไขข้อ จำกัด นี้ได้ อย่างไรก็ตามฉันมีสิทธิ์ของผู้ดูแลระบบในอินสแตนซ์ของเซิร์ฟเวอร์ ฉันแหย่ไปรอบ ๆ ในแง่มุมของเซิร์ฟเวอร์ แต่ฉันไม่เห็นสิ่งใดที่เกี่ยวข้องกับตัวเลือกแบบสอบถามหรือการเรียกซ้ำ ผมถือว่ามีมีจะเป็นที่ใดที่หนึ่งสถานที่ที่ฉันสามารถอัปเดตเริ่มต้นทั้งระบบ ความคิดใด ๆ

1
ความหมายของ 'ล็อคบันทึก แต่ไม่ต้องรอช่องว่าง' ในรายงานการหยุดชะงัก
เกี่ยวกับความหมายของlocks rec but not gap waitingในธุรกรรม (1) ข้อใดที่ถูกต้อง? ได้รับการล็อคช่องว่างรอดัชนี X คลัสเตอร์อยู่หรือไม่ ได้รับดัชนีดัชนี X lock แล้วรอการล็อคช่องว่างอยู่หรือไม่ ธุรกรรมมี 31 แถว (1) ความหมายของแถวเหล่านั้นคืออะไร? สิ่งนี้แสดงถึงการล็อคช่องว่างหรือไม่? 0: len 4; hex 800c20d6; asc ;; .... 29: SQL NULL; 30: SQL NULL; รายงาน DEADLOCK ที่ตรวจพบล่าสุด LATEST DETECTED DEADLOCK ------------------------ 2015-09-25 15:27:24 1b8084000 *** (1) TRANSACTION: TRANSACTION 5226928, …
12 mysql  deadlock 

2
ตาราง Redshift ไม่แสดงในตารางสำหรับสคีมาหรือไม่
ใน Redshift เหตุใดตารางของฉันจึงไม่ปรากฏในแบบสอบถามต่อไปนี้ มันมีอยู่จริงดังที่แสดงโดยเคียวรีถัดไปที่ฉันรัน ฉันต้องการวิธีในรายการตารางทั้งหมดสำหรับสคีมา: mydb=# select distinct(tablename) from pg_table_def where schemaname = 'db'; tablename ----------- (0 rows) mydb=# \d db.some_table Table "db.some_table" Column | Type | Modifiers -----------------+-----------------------------+----------- ...correct info shows up here... ...but nothing showed up above?
12 redshift 

2
ฉันจะแมปเข้าสู่ระบบฐานข้อมูลโดยใช้ T-SQL (ไม่ใช่ SSMS) ได้อย่างไร
ฉันกำลังเขียนโปรแกรมที่กำหนดให้ฉันต้องกำหนดสิทธิ์ทั้งหมดและทุกอย่างเป็นรหัส ฉันติดค้างอยู่ในส่วนนี้: ฉันแค่ต้องการทำเทียบเท่ากับการคลิกกล่องเล็ก ๆ ใต้ "แผนที่" สำหรับฐานข้อมูล msdb และกำหนดผู้ใช้นั้นให้กับบทบาท SqlAgentUser ฉันต้องการให้ผู้ใช้งานสามารถเพิ่ม / แก้ไขงาน SQL Server Agent ได้ ฉันสามารถตั้งค่าได้อย่างถูกต้องโดยใช้ SSMS แต่ฉันทำไม่ได้ตลอดชีวิตว่าจะทำอย่างไรใน SQL แบบดิบ ฉันค้นหาALTER LOGIN แล้วแต่ไม่เห็นสิ่งใดที่ต้องการ ฉันสงสัยว่าฉันไม่ทราบเงื่อนไขที่ถูกต้องสำหรับ Google ปกติฉันจะไม่ทำสิ่งนี้ ความช่วยเหลือใด ๆ ที่ชื่นชมมาก!

1
วิธีเปลี่ยนชื่อล็อกอินของผู้ดูแลระบบบนเซิร์ฟเวอร์ azure sql
ฉันมี myserver.database.windows.net พร้อมกับลงชื่อเข้าใช้ของผู้ดูแลระบบ John ฉันต้องการเปลี่ยนเป็นปีเตอร์ เป็นไปได้ถ้าเป็นเช่นนั้นได้อย่างไร แก้ไขซึ่งทำงานกับเซิร์ฟเวอร์ sql ในพื้นที่ไม่ทำงานที่นี่ เปลี่ยนชื่อเข้าสู่ระบบ John With NAME = Peter

1
ดูการหยุดชะงักหลายครั้งที่ผ่านมา
ฉันเห็นว่าฉันสามารถดูการหยุดชะงักล่าสุดใน mysql / innodb แต่มีวิธีดูการหยุดชะงักที่ผ่านมาหรือไม่ เรามีปัญหาการหยุดชะงักสองประการประเด็นหนึ่งมีความสำคัญ การหยุดชะงักที่สำคัญน้อยกว่าเกิดขึ้นวันละหลายครั้งดังนั้นจึงกลายเป็นการหยุดชะงัก "ล่าสุด"


1
ปรับ PostgreSQL ให้เหมาะสมที่สุดสำหรับการปรับปรุง INSERTS และ bytea มากมาย
สิ่งที่เรามี (ซอฟต์แวร์): PostrgeSQL 9.3พร้อมการกำหนดค่าพื้นฐาน (ไม่มีการเปลี่ยนแปลงpostgresql.conf) Windows 7 64 บิต ฮาร์ดแวร์: Intel Core i7-3770 3.9 Ghz RAM 32 Gb WDC WD10EZRX-00L4HBAta ไดรฟ์ (1000Gb, SATA III) ดังนั้นเราต้องโหลดลงใน DB aprox 100.000.000แถวที่มีbyteaคอลัมน์และง่ายขึ้น500.000.000แถว (โดยไม่ LOBs) มี 2 varcharดัชนีในตารางที่ 1 (ความยาว 13, 19) และ 2 varcharดัชนีในตารางที่ 2 (18, 10 ความยาว) นอกจากนี้ยังมีลำดับสำหรับการสร้าง id สำหรับแต่ละตาราง ในตอนนี้การดำเนินการเหล่านี้กำลังทำอยู่กับการเชื่อมต่อ 8 แบบขนานกับขนาดแบตช์ …

2
แบบสอบถาม SQL เข้าร่วมเพื่อแสดงแถวที่ไม่มีแถวในหนึ่งตาราง
ฉันกำลังพยายามทำให้การรายงานบางอย่างเสร็จสิ้นเพื่อบันทึกเวลาของพนักงาน เรามีสองตารางสำหรับคำถามนี้โดยเฉพาะ พนักงานมีการระบุไว้ในMembersตารางและในแต่ละวันพวกเขาป้อนรายการเวลาของงานที่พวกเขาทำและถูกเก็บไว้ในTime_Entryตาราง ตัวอย่างการตั้งค่าด้วย SQL Fiddle: http://sqlfiddle.com/#!3/e3806/7 ผลลัพธ์ที่ฉันจะให้เป็นตารางซึ่งแสดงให้เห็นทั้งหมดMembersในรายการคอลัมน์และจากนั้นจะแสดงชั่วโมงรวมของพวกเขาสำหรับวันที่สอบถามในคอลัมน์อื่น ๆ ปัญหาดูเหมือนว่าถ้าไม่มีแถวในTime_Entryตารางสำหรับสมาชิกเฉพาะตอนนี้มีแถวสำหรับสมาชิกนั้น ฉันได้ลองประเภทการเข้าร่วมหลายประเภท (ซ้าย, ขวา, ด้านใน, ด้านนอก, ด้านนอกเต็ม, ฯลฯ ) แต่ดูเหมือนว่าจะไม่มีสิ่งใดที่ฉันต้องการซึ่งจะเป็น (ตามตัวอย่างล่าสุดในซอฟแวร์ SQL Fiddle): /*** Desired End Result ***/ Member_ID | COUNTTime_Entry | TIMEENTRYDATE | SUMHOURS_ACTUAL | SUMHOURS_BILL ADavis | 0 | 11-10-2013 | 0 | 0 BTronton | 0 | 11-10-2013 …

8
วิธีเขียนแบบสอบถามเพื่อค้นหาตารางทั้งหมดใน db ที่มีชื่อคอลัมน์เฉพาะ
ฉันมีฐานข้อมูลที่มีประมาณ 100 ตารางและฉันต้องสร้างแบบสอบถามแบบใช้ร่วมเพื่อรับข้อมูลเฉพาะจากสองรายการ ฉันรู้หนึ่ง แต่ไม่ใช่คนอื่น โดยทั่วไปฉันต้องการบางสิ่งบางอย่างเช่น: select <tables> from <database> where exists table.column name; ฉันจะทำสิ่งนี้ได้อย่างไร
12 metadata 

4
เหตุใดจึงใช้เคอร์เซอร์ที่ชัดเจนแทนการวนซ้ำปกติ
ฉันได้เขียนเว็บแอพพื้นฐานเป็นเวลาหนึ่งปี (สำหรับฐานข้อมูล Oracle) และเนื่องจากฟังก์ชั่นนั้นค่อนข้างเรียบง่ายพวกเราส่วนใหญ่ติดอยู่กับ FOR ลูปปกติเพื่อรับข้อมูลของเรา: for i in (select * from STUDENTS) loop htp.prn(i.student_last_name || ', ' || i.student_first_name || ' ' || i.student_dob); end loop; แต่เคอร์เซอร์ดูเหมือนจะเป็นวิธีที่ 'ถูกต้อง' ในการทำสิ่งต่าง ๆ ฉันสามารถหาข้อมูลมากมายเกี่ยวกับเคอร์เซอร์และวิธีการวนลูปต่าง ๆ แต่ฉันไม่สามารถหาเหตุผลที่ชัดเจนว่าทำไมต้องใช้พวกมันมากกว่าลูปปกติ มันขึ้นอยู่กับความต้องการของขั้นตอนหรือไม่? มีข้อได้เปรียบโดยธรรมชาติที่ฉันควรทราบหรือไม่?
12 oracle  plsql 

1
PostgreSQL psql - ไม่ทำงาน แต่ไม่มีข้อผิดพลาด [ปิด]
คำถามนี้ไม่น่าจะช่วยผู้เข้าชมในอนาคต มันเกี่ยวข้องเฉพาะกับพื้นที่ทางภูมิศาสตร์ขนาดเล็กช่วงเวลาที่เฉพาะเจาะจงหรือสถานการณ์ที่แคบเป็นพิเศษซึ่งโดยทั่วไปไม่สามารถใช้ได้กับผู้ชมทั่วโลกของอินเทอร์เน็ต สำหรับความช่วยเหลือในการทำคำถามนี้มากขึ้นบังคับในวงกว้างไปที่ศูนย์ช่วยเหลือ ปิดให้บริการใน7 ปีที่ผ่านมา ฉันเป็น noob ที่สมบูรณ์สำหรับ PostgreSQL ดังนั้นฉันอาจจะพลาดอะไรบางอย่างที่เห็นได้อย่างสมบูรณ์ เชื่อมต่อกับฐานข้อมูลท้องถิ่นของฉันผ่าน psql บนเทอร์มินัล คำสั่งใด ๆ ที่ฉันเรียกใช้เพื่อทำการเปลี่ยนแปลง db หรือแม้แต่ตัวเลือกแบบง่ายก็ไม่ทำอะไรเลย ไม่มีข้อผิดพลาดไม่มีผลลัพธ์ ฉันสามารถใช้คำสั่งเชลล์ createdb, dropdb ได้ดี มีเว็บไซต์ที่ทำงานใน Ruby on Rails, RefineryCMS โดยใช้ฐานข้อมูล PostgreSQL ดังนั้นฉันรู้ว่า db มีข้อมูลและใช้งานได้ - ฉันไม่สามารถสืบค้นหรือแก้ไขผ่าน psql ได้ ฉันกำลังคิดถึงอะไร Mac OS X Lion, pg v 9.2
12 postgresql  psql 

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