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

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

1
สิทธิ์การเข้าถึงโฟลเดอร์ข้อมูล SQL Server
ฉันติดตั้ง SQL Server 2014 ใหม่ ต่อไปฉันต้องการแนบฐานข้อมูลบางตัวจากเซิร์ฟเวอร์ SQL Server 2012 ก่อนหน้า ฉันคัดลอกไฟล์ทั้งหมดmdfและldfไปยังไดเรกทอรีข้อมูล แต่เมื่อฉันพยายามแนบไฟล์ฉันได้รับข้อความแสดงข้อผิดพลาดนี้: สร้างไฟล์พบข้อผิดพลาดของระบบปฏิบัติการ 5 (ปฏิเสธการเข้าถึง) ในขณะที่พยายามเปิดหรือสร้างฟิสิคัลไฟล์ 'D: \ SQLSERVERDATA \ MSSQL12.BIDEV \ MSSQL \ DATA \ control_demo.mdf' (Microsoft SQL Server ข้อผิดพลาด: 5123) เมื่อฉันตรวจสอบการตั้งค่าความปลอดภัยของไฟล์ (คลิกขวาที่ไฟล์คุณสมบัติความปลอดภัย) มันบอกว่าฉันไม่ได้รับอนุญาตให้อ่าน บัญชีที่ฉันใช้เพื่อคัดลอกไฟล์อยู่ในกลุ่มผู้ดูแลระบบ ฉันสามารถควบคุมDATAโฟลเดอร์ได้อย่างเต็มที่ แต่ไฟล์ที่ฉันคัดลอกมานั้นมีข้อ จำกัด เมื่อฉันพยายามที่จะใช้สิทธิ์การรักษาความปลอดภัยในโฟลเดอร์ทั้งหมดอีกครั้งมันบอกว่า: ไม่สามารถระบุวัตถุในคอนเทนเนอร์ได้ การเข้าถึงถูกปฏิเสธ. เมื่อฉันคัดลอกไฟล์ไปยังที่อื่นฉันมีสิทธิ์การเข้าถึง คำถามคือฉันจะรับสิทธิ์การเข้าถึงไฟล์เหล่านี้ในDATAโฟลเดอร์ได้อย่างไร?

2
ปัญหาเกี่ยวกับการติดตั้ง MySQL
ก่อนอื่นแก้ตัวความยาวโพสต์นี้ยาวมากและต้องการพื้นหลังบางวินาที มันยากสำหรับฉันที่จะแยกแยะสัญญาณจากเสียงรบกวนได้โปรดรับหากสิ่งเหล่านี้ไม่เกี่ยวข้อง: หลายสัปดาห์ที่ผ่านมาฉันสมัครใจเลือกที่จะอัปเกรดเป็น Windows 10 หลังจากนั้นฉันก็ตัดสินใจลบการติดตั้ง Python ที่ฉันไม่ต้องการอีกต่อไป หลังจากลบ 2.7 ล่าสุด (และรักษาเพียง 3.4.3) ทุกอย่างดูเหมือนจะทำงานได้ดีจนกระทั่งคอมพิวเตอร์ของฉันล้มเหลวโดยไม่คาดคิด ตั้งแต่นั้นมา Windows 10 ก็ไม่เคยเหมือนเดิมและไม่น่าเชื่อถืออย่างยิ่ง ฉันถูกบังคับให้ลดระดับเป็น Windows 7 อีกครั้งและเมื่อเริ่มต้น ฉันได้รับข้อความแสดงข้อผิดพลาดสองข้อความ: อันที่กล่าวว่า python dll ไม่พบและอีกอันที่กล่าวว่า: จุดเริ่มต้นของโพรซีเดอร์ RpcImpersonateClientContainer ไม่สามารถอยู่ในไลบรารีลิงก์แบบไดนามิก RPCRT4.dll ข้อผิดพลาดที่สองนี้ฉันเชื่อว่าเป็นสิ่งสำคัญ การค้นหาคร่าวๆชี้ไปที่สิ่งนี้ซึ่งระบุว่าเป็นกระบวนการของ Windows 10 เท่านั้น ฉันจัดการเพื่อติดตั้งใหม่และถอนการติดตั้ง python 2.7 และ 3.4.3 หลายครั้งและข้อผิดพลาดของ python dll ไม่ปรากฏอีกต่อไป (ดังนั้นฉันจึงมี 3.4.3 เป็น Python เวอร์ชั่นเดียวในเครื่องของฉัน) …

1
ทำไมดัชนีจินในคอลัมน์ jsonb ทำให้ข้อความค้นหาของฉันช้าลงและฉันจะทำอย่างไรได้บ้าง
เตรียมข้อมูลการทดสอบ: CREATE EXTENSION IF NOT EXISTS pgcrypto; CREATE TABLE docs (data JSONB NOT NULL DEFAULT '{}'); -- generate 200k documents, ~half with type: "type1" and another half with type: "type2", unique incremented index and random uuid per each row INSERT INTO docs (data) SELECT json_build_object('id', gen_random_uuid(), 'type', (CASE WHEN random() …

2
SQL Server 2000 บน Windows 10
ฉันต้องการติดตั้ง SQL Server MSDE 2000 SP4 บน Windows 10 ฉันมีเครื่องอื่น ๆ ที่ใช้ Windows 7 และ 8.1 และ SQL Server MSDE 2000 ทำงานได้ดี (ด้วยการรวมแบบจำลองที่กำหนดค่าไว้ด้วย) ตอนนี้ฉันทดสอบสถานการณ์เดียวกันกับ Windows 10 แต่การติดตั้งกำลังปิดโดยไม่คาดคิดระหว่างการติดตั้ง ฉันรู้ว่ารุ่นนี้เก่ามาก แต่มีวิธีแก้ไขในการติดตั้งบน Windows 10 หรือไม่?

2
ปรับปรุงคิวรีช้าลงหลังจากเปิดใช้งานดัชนีข้อความแบบเต็มของเซิร์ฟเวอร์ SQL
ฉันมีเว็บไซต์ asp.net ที่มีการแทรกอัปเดตและลบคิวรีที่เรียกใช้กับฐานข้อมูลของฉันมากมาย ไม่กี่วันที่ผ่านมาฉันสร้างดัชนีข้อความแบบเต็มในสองคอลัมน์ของหนึ่งในตาราง หลังจากนั้นฉันก็รู้ว่าเมื่อเว็บไซต์รันคิวรีการอัพเดตบนตารางนั้นการใช้หน่วยความจำและดิสก์ของกระบวนการเซิร์ฟเวอร์ SQL กำลังกระโดดและการอัปเดตช้าลง แบบสอบถามทำงานโดยไม่มีปัญหาประสิทธิภาพใด ๆ ก่อนสร้างดัชนีข้อความแบบเต็ม ฉันยังตระหนักว่าแบบสอบถามแบบใช้ปรับปรุงที่ง่ายมากมาก่อนตอนนี้มีความซับซ้อนเนื่องจากแผนการดำเนินการในขณะนี้มีสิ่งต่าง ๆ เช่นการปรับปรุงดัชนีข้อความแบบเต็ม นี่เป็นส่วนหนึ่งของแผนการดำเนินการใหม่ที่ซับซ้อนหลังจากเปิดใช้งานข้อความแบบเต็ม: ในบางชั่วโมงเมื่อฉันอัปเดตเนื้อหาของไซต์ฉันเรียกใช้คิวรีการอัปเดต 5,000 รายการและฉันคิดว่ากระบวนการจัดทำดัชนีข้อความแบบเต็มจะทำในแต่ละครั้งสำหรับแต่ละแถว ฉันควรจะปิดการใช้งานการสแกนข้อความเต็มในการเริ่มต้นของการปรับปรุงแถวและจากนั้นอีกครั้งเปิดใช้งานได้ (ในขณะที่คำถามที่เกี่ยวข้องนี้ )? ฉันสามารถบอกให้ SQL Server หยุดจัดทำดัชนีข้อความแบบเต็มเป็นเวลา 5 นาทีแล้วเริ่มสร้างดัชนีข้อมูลใหม่ได้หรือไม่ มีทางเลือกที่ดีกว่านี้อีกไหม? ฉันใช้ SQL Server 2012

2
หน้าต่างชดเชยตรงตามเวลาประทับ
ฉันกำลังเขียนคิวรีที่จะใช้ในหน้าผลลัพธ์สำหรับโซเชียลฟีด แนวคิดคือแอพมือถือจะขอรายการ N และให้เริ่มต้นวันที่และเวลาที่ฉันได้เรียก@CutoffTimeด้านล่าง วัตถุประสงค์ของเวลา cutoff คือการสร้างเมื่อหน้าต่างการเพจควรเริ่มทำงาน เหตุผลที่เราใช้การประทับเวลาแทนการชดเชยแถวคือการประทับเวลาจะทำให้เราหน้าจากตำแหน่งที่สอดคล้องกันเมื่อรับโพสต์ที่เก่ากว่าแม้ว่าจะมีการเพิ่มเนื้อหาโซเชียลใหม่ เนื่องจากรายการฟีดโซเชียลอาจมาจากตัวคุณเองหรือเพื่อนของคุณที่ฉันใช้UNIONเพื่อรวมผลลัพธ์จากทั้งสองกลุ่ม เดิมทีฉันลองใช้วิธีที่TheQuery_CTEไม่มีตรรกะUNIONและมันก็เป็นสุนัขช้า นี่คือสิ่งที่ฉันได้ทำ (รวมถึงตารางคีที่เกี่ยวข้อง): CREATE TABLE [Content].[Photo] ( [PhotoId] INT NOT NULL PRIMARY KEY IDENTITY (1, 1), [Key] UNIQUEIDENTIFIER NOT NULL DEFAULT NEWID(), [FullResolutionUrl] NVARCHAR(255) NOT NULL, [Description] NVARCHAR(255) NULL, [Created] DATETIME2(2) NOT NULL DEFAULT SYSUTCDATETIME(), ); CREATE TABLE [Content].[UserPhotoAssociation] ( [PhotoId] …

2
การเปลี่ยนไดเรกทอรีข้อมูลบนเซิร์ฟเวอร์ฐานข้อมูล MySQL
ฉันติดตั้งเซิร์ฟเวอร์ mysql 5.6.24 บน Windows Server 2012 R2 แล้ว ฉันอิมพอร์ตไฟล์ดัมพ์และไฟล์ข้อมูลถูกเก็บไว้ C:\ProgramData\MySQL\MySQL Server 5.6\data D:\ProgramData\Dataฉันต้องการที่จะเปลี่ยนไดเรกทอรีเช่น คุณช่วยฉันได้ไหม

1
สิทธิพิเศษจะแสดงรายการใน \ l และเมื่อใด
สิทธิในการเข้าถึงถูกระบุโดย \ l เมื่อใดและจะไม่ใช้ สิทธิ์การเข้าถึงที่ระบุโดย \ l สามารถเปลี่ยนแปลงได้หลังจากการให้สิทธิ์และการเพิกถอน: $ createuser -EP my_readonly $ psql development development=# \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -----------------------------+----------+----------+-------------+-------------+----------------------- development | vagrant | UTF8 | en_GB.UTF-8 | en_GB.UTF-8 | ... development=# grant usage on schema public …

2
การเตรียม TDE: การสำรองคีย์ / ใบรับรองสำหรับการกู้คืน
ฉันทำงานในสภาพแวดล้อมแบบ dev เพื่อทำความเข้าใจกับTDEการเข้ารหัส ฉันได้ทำงานกับการสำรองข้อมูลและคืนค่าบนเซิร์ฟเวอร์อื่น มีคำถามสองสามข้อฉันรู้ว่าฉันต้องสำรองข้อมูลใบรับรองด้วยรหัสส่วนตัวที่เกี่ยวข้อง USE master; GO BACKUP CERTIFICATE Test TO FILE = 'C:\Test.cer' WITH PRIVATE KEY (FILE = 'C:\Test.pvk', ENCRYPTION BY PASSWORD = 'Example12#') จำเป็นต้องย้าย / คืนค่าเหล่านี้บนเซิร์ฟเวอร์ใหม่ในกรณีที่เกิดความล้มเหลว มีอะไรอีกบ้างที่ฉันจำเป็นต้องสำรองข้อมูลจากเซิร์ฟเวอร์ต้นทางที่จะต้องใช้ในกรณีที่จำเป็นต้องกู้คืนไปยังเซิร์ฟเวอร์อื่นหรือไม่ ข้อเสนอแนะใด ๆ เกี่ยวกับการจัดเก็บคีย์ส่วนตัว? ความคิดของฉันในตอนนี้คือการสำรองใบรับรองกุญแจส่วนตัวและรหัสผ่านไปยังฐานข้อมูล KeePass ที่สำรองแยกต่างหากและทำซ้ำนอกไซต์ นั่นทำให้คำถามว่าจะสำรองคีย์ส่วนตัวของ KeePass ไปที่ใด

2
การจัดเก็บที่อยู่การเรียกเก็บเงินวิธีปฏิบัติที่ดีที่สุดในตารางคำสั่งซื้อ
ใครสามารถช่วยฉันเข้าใจคำตอบของผู้ใช้นี้สำหรับตารางตำแหน่งที่อยู่ของลูกค้า ฉันต้องการวิธีการที่ดีในการจัดเก็บที่อยู่ในตารางคำสั่งซื้อ สิ่งที่ฉันกำลังมองหาคือวิธีการตั้งค่าที่อยู่ของฉันดังนั้นเมื่อฉันแก้ไขที่อยู่ใบสั่งจะไม่ได้รับผลกระทบจากความจริงที่ว่าลูกค้าอัปเดตที่อยู่หรือย้ายที่อยู่ ตามที่สคีมาของฉันนั้นดูคล้ายกับ: Person |EntityID| EntityAddress |EntityID|AddressID| Address |AddressID|AddressType|AddressLine1|AddressLine2| Order |OrderID|BillingAddressID|

2
เหตุใดการรอคอยของ async_network_io จึงเป็นประเภท
สัปดาห์ที่แล้วมีสิ่งผิดปกติเกิดขึ้นในฐานข้อมูลของเรา ทั้งหมดในทันทีแอปพลิเคชันที่ถูกบล็อกสำหรับผู้ใช้ของเราที่ไม่สามารถบันทึกเอนทิตีใหม่ ฯลฯ หลังจากดูการตรวจสอบกิจกรรมของ SQL Server (2008 ด้วยโหมดความเข้ากันได้ 2005) ฉันเห็นสามรายการต่อไปนี้: หลังจากระยะเวลาหนึ่งผู้ใช้จะได้รับการหมดเวลาเชื่อมต่อ เมื่อฉันฆ่ากระบวนการ 64 พวกเขาสามารถบันทึกได้ตามปกติอีกครั้ง ปัญหาคือเอนทิตีที่พวกเขาพยายามบันทึกระหว่างบล็อกถูกแทรกลงในฐานข้อมูลมากกว่าหนึ่งครั้ง (สูงสุด 3 ครั้ง) แม้ว่าจะมีรหัสที่ควรป้องกันไม่ให้เกิดขึ้น (คอลัมน์หมายเลขที่ต้องไม่ซ้ำกัน แต่ไม่มีข้อ จำกัด ) ... การตรวจสอบเกิดขึ้นในรหัส) เราใช้ Entity Framework 6.0 มีใครบ้างที่รู้ว่าทำไมและเมื่อ ASYNC_NETWORK_IO รอประเภทเกิดขึ้นและจะหลีกเลี่ยงได้อย่างไร และพวกเขาหมายถึงอะไรกันแน่?

3
PostgreSQL สามารถใช้ null ในดัชนีได้หรือไม่
ฉันอ่านหนังสือเล่มนี้ซึ่งบอกว่า ฐานข้อมูลสันนิษฐานว่า Indexed_Col IS NOT NULL ครอบคลุมช่วงที่มีขนาดใหญ่เกินไปที่จะเป็นประโยชน์ดังนั้นฐานข้อมูลจะไม่ขับไปยังดัชนีจากเงื่อนไขนี้ ฉันจำได้ว่าหนังสือเล่มนี้มีความเก่าแก่กว่า 10 ปี แต่ได้รับการพิสูจน์แล้วค่อนข้างมีประโยชน์ - การใช้คำแนะนำที่รวบรวมได้จากหน้าเว็บของตนฉันได้เร่งแบบสอบถามขึ้นโดยปัจจัยที่สิบ นอกจากนี้ในการทำงานEXPLAIN ANALYZEในSELECTแบบสอบถามที่ฉันได้พบว่าไม่มีการจัดทำดัชนีของฉันจะถูกนำมาใช้แม้ในขณะที่สิทธิทั้งหมดที่พวกเขาควรจะเป็น ดังนั้นคำถามของฉันคือ: สมมติว่ามีตารางที่มีคอลัมน์ซึ่งคำจำกัดความของคอลัมน์รวมถึง "NOT NULL" และดัชนีที่มีอยู่ซึ่งครอบคลุมคอลัมน์นี้ดัชนีนี้จะถูกใช้ในแบบสอบถามของตารางนั้นซึ่งคอลัมน์เป็นส่วนหนึ่งของแบบสอบถามหรือไม่ ชอบ: CREATE TABLE my_table( a varchar NOT NULL ); CREATE INDEX ix_my_table ON my_table(a); SELECT a from my_table;

3
ทำไมไม่แบ่งพาร์ติชัน?
เมื่อใดที่ไม่ต้องการแบ่งพาร์ติชันฐานข้อมูล (คิดMySQL แบ่ง ) ในกรณีของฉัน ฉันจะเริ่มต้นด้วยสองสามล้านแถวก็ควรเติบโตจากที่นั่น คีย์หลักในฟิลด์อักขระที่ทำหน้าที่เป็นตัวยับยั้งเคียวรีที่พบบ่อยที่สุด (และการค้นหาบ่อยครั้ง - อย่างน้อยสองสามต่อวินาที) คีย์หลักจะถูกแฮชเพื่อใช้เป็นพาร์ติชันคีย์ การอัปเดตจะทำกับทุกแถวที่ถูกดึงในคิวรีที่พบบ่อยที่กล่าวถึงข้างต้น การค้นหาน้อยลง (เทียบกับคอลัมน์วันที่หรืออื่น ๆ ) จะต้องกดพาร์ทิชันทั้งหมด แม้แต่ในจุดสุดท้ายการค้นหาไม่ทำงานคู่ขนานดังนั้นในทุกกรณีนี่คือชัยชนะหรือไม่ ข้อเสียของการแบ่งพาร์ติชั่นคืออะไร ทำไมมันไม่ได้เป็นสิ่งที่ทุกคนใช้เป็นค่าเริ่มต้นอย่างน้อยเมื่อคุณดูที่บันทึกนับล้าน + อัปเดต - ฉันเลือกคำตอบของ zgguy แต่ทราบว่าฉันได้เพิ่มคำตอบของตัวเองพร้อมกับผลการวิจัยของตัวเองรวมถึงลิงค์ไปยังคำตอบที่ดีจริงๆสำหรับคำถามที่คล้ายกันซึ่งเป็นประโยชน์อย่างมากสำหรับฉัน

3
ใครเป็นผู้สร้างขั้นตอน (SQL Server 2008 R2)
มีวิธีในรายการที่สร้างการจัดหาใน SQL Server 2008 หรือไม่? ในลิงค์ SO นี้มีคำตอบบางส่วน แต่เมื่อ 6 ปีที่แล้ว ฉันรู้ว่าเป็นวิธีที่ดีที่สุดในการเขียนชื่อและวันที่ของคุณจากนั้นเริ่มสร้างขั้นตอน แต่ฉันไม่เห็นสิ่งนี้ที่ฉันทำงาน หากไม่มีวิธีในการทำเช่นนี้งานนี้จะถูกกระตุ้นด้วยทริกเกอร์หรือไม่? และคำถามโบนัส เป็นงานของ dba หรือไม่ รู้ว่าใครเป็นผู้สร้าง ขอบคุณมาก.

1
ทำไม Azure SQL Server ของฉันช้าจัง
ขณะนี้เรามี VM ที่มีความสามารถต่ำมากและกำลังเสนอให้ย้ายไปยัง Azure VM ที่มีสเปคที่ดีกว่า ปัญหาคือ Azure VM ช้ากว่า VM ดั้งเดิมมากถึงแม้ว่ามันจะเป็นสเป็คที่สูงกว่าก็ตาม เซิร์ฟเวอร์ดั้งเดิมคือ VM แบบ 2 คอร์ที่มีหน่วยความจำ 2GB ซึ่งเป็นเว็บเซิร์ฟเวอร์ มันรัน Microsoft SQL Server Web Edition 2008 R2 และเนื่องจากเซิร์ฟเวอร์นี้จะใช้สำหรับสิ่งอื่น ๆ ที่เราได้มีการ จำกัด หน่วยความจำเซิร์ฟเวอร์สูงสุดใน SQL Server เพื่อ512MB เซิร์ฟเวอร์ใหม่เป็น VM 4 คอร์ที่มีหน่วยความจำ 7GB ซึ่งเป็นเซิร์ฟเวอร์ฐานข้อมูลเท่านั้น กำลังเรียกใช้ Microsoft SQL Server Standard Edition 2008 R2 และเราไม่ได้ …

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