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

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


4
SQL Server บน Mac
สามารถติดตั้งฉบับด่วนของเอ็นจินเซิร์ฟเวอร์ SQL ได้บน OS X ฉันใช้ MacBook ที่บ้านและต้องการใช้เป็นแพลตฟอร์มทดสอบ / เรียนรู้สำหรับ SQL Server

2
ใน SQL Server ฉันควรบังคับ LOOP JOIN ในกรณีต่อไปนี้หรือไม่
โดยทั่วไปฉันแนะนำไม่ให้ใช้คำแนะนำการเข้าร่วมด้วยเหตุผลมาตรฐานทั้งหมด อย่างไรก็ตามเมื่อเร็ว ๆ นี้ฉันได้พบรูปแบบที่ฉันมักจะพบว่าวงบังคับที่ถูกบังคับให้ทำงานได้ดีขึ้น ในความเป็นจริงฉันเริ่มใช้และแนะนำมันมากจนฉันต้องการได้รับความเห็นที่สองเพื่อให้แน่ใจว่าฉันจะไม่พลาดบางสิ่งบางอย่าง นี่คือสถานการณ์จำลอง (รหัสที่เจาะจงมากในการสร้างตัวอย่างคือตอนท้าย): --Case 1: NO HINT SELECT S.* INTO #Results FROM #Driver AS D JOIN SampleTable AS S ON S.ID = D.ID --Case 2: LOOP JOIN HINT SELECT S.* INTO #Results FROM #Driver AS D INNER LOOP JOIN SampleTable AS S ON S.ID = D.ID …
15 sql-server 

3
รับจำนวนการตรวจสอบและจำนวนการพิมพ์จากข้อมูลการสูญเสียผลเสมอ
ฉันทำSQL Fiddleสำหรับคำถามนี้ถ้านั่นทำให้ทุกคนง่ายขึ้น ฉันมีฐานข้อมูลกีฬาแนวแฟนตาซีและสิ่งที่ฉันพยายามคิดคือทำอย่างไรกับข้อมูล "แนวปัจจุบัน" (เช่น 'W2' หากทีมชนะการแข่งขัน 2 นัดสุดท้ายหรือ 'L1' หากพวกเขาแพ้ นัดสุดท้ายของพวกเขาหลังจากชนะนัดก่อนหน้า - หรือ 'T1' ถ้าพวกเขาเสมอนัดล่าสุด นี่คือสคีมาพื้นฐานของฉัน: CREATE TABLE FantasyTeams ( team_id BIGINT NOT NULL ) CREATE TABLE FantasyMatches( match_id BIGINT NOT NULL, home_fantasy_team_id BIGINT NOT NULL, away_fantasy_team_id BIGINT NOT NULL, fantasy_season_id BIGINT NOT NULL, fantasy_league_id BIGINT NOT NULL, fantasy_week_id …

2
สิทธิพิเศษสำหรับเจ้าของฐานข้อมูล ผู้ใช้แอปพลิเคชัน
รุ่นด่วน: ฉันควรใช้คำสั่งใดเพื่อให้เจ้าของฐานข้อมูลอนุญาตให้เข้าถึงตารางในฐานข้อมูลนี้และสามารถทำได้จากบัญชีของเจ้าของรายนั้น รุ่นที่ยาวกว่า: ฉันกำลังสร้างฐานข้อมูลบน RDS ฉันมีผู้ใช้ 'รูท' ที่ฉันกำหนดค่าไว้กับ Amazon Amazon สร้างบทบาทกลุ่ม 'rds_superuser' โดยอัตโนมัติซึ่งมีสิทธิพิเศษมาก แต่ไม่ใช่ superuser จริง ๆ ฉันกำลังสร้างฐานข้อมูลและผู้ใช้สำหรับแอปพลิเคชันดังต่อไปนี้: create database master_integration; CREATE ROLE master_application LOGIN ENCRYPTED PASSWORD '...' VALID UNTIL 'infinity'; GRANT ALL ON DATABASE master_integration TO GROUP rds_superuser WITH GRANT OPTION; GRANT ALL ON DATABASE master_integration TO GROUP master_application; …

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

1
จำเป็นต้องรวมคอลัมน์ดัชนีคลัสเตอร์ในดัชนีที่ไม่ใช่คลัสเตอร์หรือไม่
เมื่อพิจารณาว่าดัชนีที่ไม่ได้ทำคลัสเตอร์นั้นเป็นไปตามดัชนีคลัสเตอร์ที่จำเป็นสำหรับดัชนีที่ไม่ทำคลัสเตอร์เพื่อแสดงรายการคอลัมน์ใด ๆ ที่มีอยู่ในดัชนีคลัสเตอร์หรือไม่ กล่าวอีกนัยหนึ่งถ้าตารางผลิตภัณฑ์มีดัชนีคลัสเตอร์บน ProductID เมื่อสร้างดัชนีที่ไม่ใช่คลัสเตอร์ซึ่งจะแนะนำให้รวมคอลัมน์ ProductID จำเป็นต้องเพิ่มอย่างไรก็ตามเป็นคอลัมน์หรือไม่? ถ้าไม่มีมีสถานการณ์ที่จะเป็นการดีที่จะเพิ่มชื่อคอลัมน์ไปยังดัชนีที่ไม่ใช่คลัสเตอร์หรือไม่

3
ดัชนีสำหรับเคียวรี SQL ที่มีเงื่อนไข WHERE และ GROUP BY
ฉันพยายามที่จะกำหนดดัชนีที่จะใช้สำหรับแบบสอบถาม SQL ที่มีWHEREเงื่อนไขและGROUP BYที่กำลังทำงานช้ามาก คำค้นหาของฉัน: SELECT group_id FROM counter WHERE ts between timestamp '2014-03-02 00:00:00.0' and timestamp '2014-03-05 12:00:00.0' GROUP BY group_id ปัจจุบันตารางมี 32.000.000 แถว เวลาดำเนินการของแบบสอบถามเพิ่มขึ้นมากเมื่อฉันเพิ่มกรอบเวลา ตารางที่สงสัยจะเป็นดังนี้: CREATE TABLE counter ( id bigserial PRIMARY KEY , ts timestamp NOT NULL , group_id bigint NOT NULL ); ขณะนี้ฉันมีดัชนีต่อไปนี้ แต่ประสิทธิภาพยังคงช้า: CREATE INDEX …

3
โอนย้ายฐานข้อมูล heroku ไปยัง Amazon RDS ด้วยเวลาหยุดทำงานขั้นต่ำ
ฉันมีฐานข้อมูล heroku postgres และต้องการย้ายไปยัง Amazon RDS เพื่อประหยัดค่าใช้จ่าย จะทำอย่างไรกับการหยุดทำงานขั้นต่ำ โดยปกติแล้วสิ่งนี้จะเกี่ยวข้องกับการจำลองฐานข้อมูลแบบเรียลไทม์จากนั้นจึงส่งเสริมฐานข้อมูลที่จำลองแบบแล้วเป็นฐานข้อมูลหลัก ฉันรู้ว่าฉันสามารถใช้ฐานข้อมูลผู้ติดตามเพื่อย้ายฐานข้อมูลภายใน heroku และฉันสามารถใช้ฐานข้อมูลแบบจำลองการอ่านเพื่อย้ายฐานข้อมูลภายใน Amazon RDS มีวิธีการคล้ายกันในการสร้างการจำลองแบบฐานข้อมูลของ heroku DB ที่อาศัยอยู่ใน Amazon RDS ของฉันเองหรือไม่?

4
วิธีการเปลี่ยนแปลงหรืออัปเดตการเชื่อมต่อเซิร์ฟเวอร์ท้องถิ่นในงานแผนการบำรุงรักษา
สองวันหลังลูกค้าของเราเปลี่ยนชื่อเซิร์ฟเวอร์ Dev ของเรา หลังจากเปลี่ยนชื่อเซิร์ฟเวอร์แล้วงานบำรุงรักษาของฉันและงานอื่นทั้งหมดจะล้มเหลวเนื่องจากชื่อเซิร์ฟเวอร์ไม่ตรงกัน เรากำลังใช้เวอร์ชันsql server 2012และเซิร์ฟเวอร์ 2008 OS ดังนั้นเช้าวันนี้ฉันจึงเปลี่ยนชื่อเซิร์ฟเวอร์ SQL ของฉันเป็นชื่อที่ได้รับการอัพเดตและสร้างตาราง ฉันพยายามอัปเดตการเชื่อมต่อเซิร์ฟเวอร์ภายในในงานบำรุงรักษา แต่ไม่สามารถแก้ไขได้ จากนั้นฉันเพิ่มการเชื่อมต่อเซิร์ฟเวอร์ใหม่ยังคงไม่มีประโยชน์ฉันได้รับข้อผิดพลาดด้านล่างขณะดำเนินงาน หลังจากที่ฉันลองกับหน้าเป้าหมายในตัวเลือกคุณสมบัติงานมีเฉพาะเซิร์ฟเวอร์เป้าหมายเท่านั้นที่ถูกเลือกและเซิร์ฟเวอร์เป้าหมายหลายตัวถูกปิดใช้งาน ข้อผิดพลาดด้านล่าง ดำเนินการในฐานะผู้ใช้: NT Service \ SQLSERVERAGENT Microsoft (R) SQL Server Execute Package Utility เวอร์ชัน 11.0.2100.60 สำหรับ 64- บิตลิขสิทธิ์ (C) Microsoft Corporation สงวนลิขสิทธิ์. เริ่มต้น: 12:01:28 AM ข้อผิดพลาด: 2013-12-16 00: 01: 43.98 รหัส: 0xC00291EC ที่มา: {410F7661-F71A-4B68-9584-BA422AB00F02} …

1
เหตุใดจึงไม่มีประเภทจำนวนเต็มที่ไม่ได้ลงชื่อในแพลตฟอร์มฐานข้อมูลด้านบน
ฐานข้อมูลมักจะปรับแต่งได้มากด้วยชนิดข้อมูลที่แตกต่างกันและความยาวที่กำหนดเอง มันทำให้ฉันประหลาดใจเนื่องจากฉันพยายามค้นหาไวยากรณ์เพื่อใช้unsigned intชนิดที่ไม่สามารถใช้ได้จากทั้ง PostgreSQL และ MS SQL Server MySQL และ Oracle ดูเหมือนจะ ดูเหมือนว่าการละเลยที่เห็นได้ชัดในส่วนของพวกเขา - ตัวเลือก perfomant ที่ดีที่สุดถัดไปคือ long / bigint, (จำนวนเต็ม 8 ไบต์) แต่อาจไม่จำเป็นอย่างสมบูรณ์! ไม่มีใครรู้ว่าทำไมพวกเขาถึงเลือกที่จะไม่รวมการสนับสนุน int แบบไม่ได้ลงนาม?

5
ฉันจะสร้างผู้ใช้แบบอ่านอย่างเดียวสำหรับการสำรองข้อมูลใน PostgreSQL ได้อย่างไร
เป็นความจริงหรือไม่ที่เป็นไปไม่ได้ที่จะสร้างผู้ใช้สำรองข้อมูลแบบอ่านอย่างเดียวใน PostgreSQL ฉันได้รับคำแนะนำเกี่ยวกับช่อง IRC ว่าคุณไม่สามารถมีผู้ใช้สำรองข้อมูลเท่านั้นที่ไม่มีสิทธิ์การเป็นเจ้าของ ฉันพบว่ามันแปลกมากดังนั้นฉันจึงต้องการให้แน่ใจว่าฉันจะไม่พลาดบางสิ่งบางอย่าง ด้านล่างเป็นสิ่งที่ฉันพยายาม แต่ไม่ได้ให้ผลลัพธ์ที่ฉันต้องการ เมื่อฉันทำpg_dumpบนโต๊ะที่กำหนดฉันได้รับPermission denied for relation...: GRANT SELECT ON ALL TABLES IN SCHEMA public TO backup; ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO backup; GRANT SELECT, USAGE ON ALL SEQUENCES IN SCHEMA public TO backup; ALTER DEFAULT PRIVILEGES IN SCHEMA …

6
Oracle ให้ดาวน์โหลดฟรีหรือไม่
ฉันเป็นผู้พัฒนา Java และปัจจุบันฉันใช้ PostgreSQL เป็น RDBMS อย่างไรก็ตามฉันต้องการเรียนรู้ Oracle ด้วย ดังนั้นฉันสามารถดาวน์โหลด Oracle เวอร์ชันล่าสุด (ฉันคาดเดา 11g) ได้ฟรีหรือไม่ ฉันพบลิงค์นี้: ดาวน์โหลดOracle Database 11g รีลีส 2และดูเหมือนว่าสามารถดาวน์โหลดได้ อย่างไรก็ตามฉันรู้ว่า Oracle Server เป็นกรรมสิทธิ์ แล้วมันทำงานอย่างไร นอกจากนี้จะมี PL / SQL พร้อมดาวน์โหลด Oracle 11g หรือไม่
15 oracle  plsql 

3
SQL Server ไม่ได้ใช้คอร์ / เธรดของ CPU ทั้งหมด
หลังจากอัปเกรดฮาร์ดแวร์ของ SQL Server ของเราเราสังเกตเห็นในตัวจัดการงานของ Windows ว่าอินสแตนซ์ SQL นั้นใช้เพียงครึ่งหนึ่งของเธรดที่มีให้: . เซิร์ฟเวอร์มีฮาร์ดแวร์และซอฟต์แวร์ต่อไปนี้: Windows 2008 R2 Enterprise 64 บิต SP1 Intel Xeon E7-4870 - โปรเซสเซอร์ 4 ตัว (40 คอร์, 80 เธรด) Microsoft SQL Server 2012 Enterprise Edition (64 บิต) วิ่งselect cpu_count from sys.dm_os_sys_infoกลับ 40 ระบบปฏิบัติการเห็น 80 กระทู้ทั้งหมด เหตุใดจึงใช้กำลังการประมวลผลของเซิร์ฟเวอร์เพียงครึ่งเดียว เรามีฮาร์ดแวร์และซอฟต์แวร์เดียวกันบนเซิร์ฟเวอร์สองเครื่องและทั้งคู่มีพฤติกรรมเหมือนกัน

1
MySQL 5.6 DateTime ค่าวันที่และเวลาไม่ถูกต้อง: '2013-08-25T17: 00: 00 + 00: 00' พร้อมรหัสข้อผิดพลาด 1292
ฉันใช้ MySQL 5.6 และฉันมีโปรแกรมที่รันคำสั่ง SQL ต่อไปนี้กับฐานข้อมูลของฉัน: UPDATE `m_table` SET `s_time` = '2013-08-25T17:00:00+00:00' WHERE id = '123' ไม่ได้รับการแจ้งเตือนฉันได้รับข้อผิดพลาดต่อไปนี้: ค่าวันที่และเวลาไม่ถูกต้อง: '2013-08-25T17: 00: 00 + 00: 00' สำหรับคอลัมน์ 's_time' ที่แถว 1 ประเภทข้อมูลสำหรับ s_time คือ DateTime ฉันพยายามตั้งค่าคุณสมบัติ allow_invalid_dates โดยใช้ workbench แล้ว ทุกคนสามารถเข้าใจและโปรดอธิบายข้อผิดพลาดนี้ให้ฉันได้ไหม ฉันรู้ว่าถ้าฉันเปลี่ยนคำสั่งเป็น UPDATE m_tableSET s_time= '2013-08-25 17:00:00' WHERE id = '123' คำสั่งนั้นจะทำงาน น่าเสียดายที่ฉันไม่สามารถปรับเปลี่ยนโปรแกรมที่ให้คำสั่ง …
15 mysql  datetime 

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