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

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

5
การกู้คืนการสำรองข้อมูลเป็น SQL Server เวอร์ชันเก่า
เมื่อพยายามคืนค่าการสำรองข้อมูลไปยังฐานข้อมูลSQL Server Express 2008ฉันได้รับข้อผิดพลาดดังต่อไปนี้: Restore failed for Server '...\SQLEXPRESS'. (Microsoft.SqlServer.SmoExtended) System.Data.SqlClient.SqlError: The database was backed up on a server running version 10.50.1600. That version is incompatible with this server, which is running version 10.00.2531. Either restore the database on a server that supports the backup, or use a backup that …

4
ปรับ postgresql สำหรับ ram จำนวนมาก
ฉันมีเซิร์ฟเวอร์ที่เหมือนกันสองตัว (ในแง่ของฮาร์ดแวร์) พวกเขาเป็นทั้งการติดตั้งมาตรฐานของ windows server 2008 r2 โดยมีการติดตั้งซอฟต์แวร์น้อยที่สุด (โดยทั่วไปคือโค้ดของฉัน บนเซิร์ฟเวอร์ตัวเดียวฉันใช้ SQL Server 2005 บนเซิร์ฟเวอร์ตัวที่สอง postgresql 9.1 ความแตกต่างของประสิทธิภาพในการทำงาน b / n เซิร์ฟเวอร์ทั้งสองนี้ไม่น่าเชื่อเลยมันแย่มากใน postgresql ที่ฉันเสียใจที่เริ่มแรก "ลองใช้ postgresql แทนที่จะจ่ายใบอนุญาตเซิร์ฟเวอร์ sql" ให้เจ้านายของฉันพูด เรากำลังพูดถึงความแตกต่างของ 30 วินาทีเทียบกับ 15 นาทีสำหรับคำสั่งเดียวกันและไม่ใช่แค่คำสั่งเดียวนี่คือแบบสอบถามหรือคำสั่งใด ๆ ที่ฉันส่งไป พวกเขาทั้งสองมีข้อมูลที่เหมือนกัน (ระเบียนถูกแทรกในลำดับที่แตกต่างกัน) และฐานข้อมูลทั้งสองมีโครงสร้าง / ดัชนีเหมือนกัน ฯลฯ แต่ฉันหวังว่ามันเป็นเพียงเรื่องของการปรับแต่งประสิทธิภาพ สิ่งคือเซิร์ฟเวอร์ sql ค่อนข้างใช้ ram 32 กิ๊กทั้งหมดบนเซิร์ฟเวอร์ในขณะที่ postgresl ไม่ได้ใช้อะไรเลยมีน้อยกว่า …

4
ฉันจะบอกได้อย่างไรว่าทำไมการแทรกในตารางที่กำหนดจึงช้า
ฉันรู้ว่า INSERT ในตาราง SQL อาจช้าด้วยเหตุผลหลายประการ: การมีอยู่ของ INSERT TRIGGERs บนโต๊ะ ข้อ จำกัด ที่บังคับใช้จำนวนมากที่ต้องตรวจสอบ (โดยปกติคือกุญแจต่างประเทศ) หน้าแยกในดัชนีคลัสเตอร์เมื่อแถวถูกแทรกในกลางตาราง การอัพเดตดัชนีที่ไม่ใช่คลัสเตอร์ทั้งหมดที่เกี่ยวข้อง การบล็อกจากกิจกรรมอื่น ๆ บนโต๊ะ เวลาตอบสนองการเขียน IO แย่ ... ทุกอย่างที่ฉันพลาดไป? ฉันจะรู้ได้อย่างไรว่าตัวไหนมีความรับผิดชอบในกรณีเฉพาะของฉัน? ฉันจะวัดผลกระทบของการแยกหน้าเทียบกับการปรับปรุงดัชนีที่ไม่ทำคลัสเตอร์กับทุกอย่างได้อย่างไร ฉันมี proc ที่เก็บไว้ซึ่งแทรกประมาณ 10,000 แถวต่อครั้ง (จากตารางชั่วคราว) ซึ่งใช้เวลาประมาณ 90 วินาทีต่อแถว 10k นั่นเป็นสิ่งที่ยอมรับไม่ได้ช้าเพราะจะทำให้เกิดการหมดเวลาอื่น ๆ ฉันได้ดูแผนการดำเนินการและฉันเห็นงาน INSERT CLUSTERED INDEX และ INDEX SEEKS ทั้งหมดจากการค้นหา FK แต่ก็ยังไม่ได้บอกฉันว่าทำไมมันถึงใช้เวลานาน ไม่มีทริกเกอร์ แต่ตารางมี FKeys …


7
ฉันจะสร้าง Tablespace ใน Oracle 11g ได้อย่างไร
ฉันไม่เข้าใจ Oracle มากนักและฉันพยายามสร้าง TABLESPACE ซึ่งให้ข้อความแสดงข้อผิดพลาดเกี่ยวกับชื่อไฟล์ที่ไม่ถูกต้อง ด้านล่างเป็นไวยากรณ์ที่ฉันได้ใช้: SQL> create Tablespace HRMT 2 datafile 3 size 4 ; size * ERROR at line 3: ORA-02236: invalid file name หนังสือของฉันและเว็บไซต์ทั้งหมดที่ฉันแนะนำให้ฉันระบุเส้นทางของไฟล์สำหรับ DATAFILE และเมื่อฉันระบุเส้นทางฉันจะได้รับข้อความแสดงข้อผิดพลาดอีกครั้ง SQL> create tablespace vania 2 datafile 'home/oracle/hait/' 3 size 10M 4 ; create tablespace vania * ERROR at line 1: ORA-01119: …
29 oracle 

7
นำเข้าไฟล์ Oracle DMP ไปยัง oracle ใหม่
ลูกค้าส่งฐานข้อมูล Oracle ที่เราต้องทดสอบ เราไม่ใช้ Oracle หรือมีความเชี่ยวชาญเฉพาะด้านของ Oracle เราจำเป็นต้องตั้งค่าฐานข้อมูลเพื่อให้เราสามารถเชื่อมต่อกับมันและแก้ปัญหาได้ ฉันติดตั้ง Oracle 9 ใหม่ (เวอร์ชันที่ไคลเอ็นต์กำลังทำงาน) และเครื่องมือการจัดการ สำหรับชีวิตของฉันฉันไม่สามารถนำเข้าข้อมูลได้ ไม่ควรซับซ้อนขนาดนี้ ฉันต้องทำอะไรผิด ฉันได้พยายาม: imp 'sys/password AS SYSDBA' file=c:\database.dmp full=yes log=implog.txt และได้รับ: Connected to: Personal Oracle9i Release 9.2.0.1.0 - Production With the Partitioning, OLAP and Oracle Data Mining options JServer Release 9.2.0.1.0 - Production Export file …
29 oracle  import 

4
วิธีที่ปรับขนาดได้เพื่อจำลอง HASHBYTES โดยใช้ฟังก์ชันสเกลาร์ SQL CLR คืออะไร?
เป็นส่วนหนึ่งของกระบวนการ ETL ของเราเราเปรียบเทียบแถวจากการจัดเตรียมกับฐานข้อมูลการรายงานเพื่อคำนวณว่าคอลัมน์ใดมีการเปลี่ยนแปลงจริงหรือไม่นับตั้งแต่ข้อมูลถูกโหลดครั้งล่าสุด การเปรียบเทียบจะขึ้นอยู่กับคีย์เฉพาะของตารางและการแฮชบางประเภทของคอลัมน์อื่นทั้งหมด ขณะนี้เราใช้HASHBYTESกับอัลกอริทึมและได้พบว่ามันไม่ได้ขนาดบนเซิร์ฟเวอร์ขนาดใหญ่ถ้าหลายเธรดพร้อมกันมีการโทรทั้งหมดSHA2_256HASHBYTES ปริมาณงานที่วัดเป็นแฮชต่อวินาทีจะไม่เพิ่มเธรดที่เกิดขึ้นพร้อมกัน 16 เธรดเมื่อทดสอบบนเซิร์ฟเวอร์คอร์ 96 ฉันทดสอบโดยเปลี่ยนจำนวนMAXDOP 8ข้อความค้นหาที่เกิดขึ้นพร้อมกันจาก 1 - 12 การทดสอบด้วยMAXDOP 1แสดงให้เห็นถึงคอขวดที่สามารถปรับขยายได้แบบเดียวกัน วิธีแก้ปัญหาฉันต้องการลองใช้โซลูชัน SQL CLR นี่คือความพยายามของฉันในการระบุข้อกำหนด: ฟังก์ชั่นจะต้องสามารถมีส่วนร่วมในแบบสอบถามแบบขนาน ฟังก์ชั่นจะต้องกำหนดขึ้น ฟังก์ชั่นจะต้องรับอินพุตNVARCHARหรือVARBINARYสตริง (คอลัมน์ที่เกี่ยวข้องทั้งหมดถูกต่อกันเข้าด้วยกัน) ขนาดอินพุตปกติของสตริงจะมีความยาว 100 - 20000 อักขระ 20000 ไม่ใช่ค่าสูงสุด โอกาสของการชนกันของแฮชควรจะเท่ากับหรือดีกว่าอัลกอริทึม MD5 CHECKSUMใช้งานไม่ได้สำหรับเราเพราะมีการชนกันมากเกินไป ฟังก์ชันต้องขยายขนาดได้ดีบนเซิร์ฟเวอร์ขนาดใหญ่ (ปริมาณงานต่อเธรดไม่ควรลดลงอย่างมีนัยสำคัญเมื่อจำนวนเธรดเพิ่มขึ้น) สำหรับ Application Reasons ™ให้ถือว่าฉันไม่สามารถบันทึกค่าแฮชของตารางการรายงานได้ เป็น CCI ที่ไม่สนับสนุนทริกเกอร์หรือคอลัมน์ที่คำนวณได้ (มีปัญหาอื่น ๆ เช่นกันที่ฉันไม่ต้องการเข้าร่วม) วิธีที่ปรับขนาดได้เพื่อจำลองHASHBYTESโดยใช้ฟังก์ชัน SQL CLR คืออะไร …

10
ฉันจะได้รับการชดเชยที่ถูกต้องระหว่างเวลา UTC กับเวลาท้องถิ่นสำหรับวันที่ก่อนหรือหลัง DST ได้อย่างไร
ขณะนี้ฉันใช้สิ่งต่อไปนี้เพื่อรับเวลาข้อมูลท้องถิ่นจาก UTC วันที่และเวลา: SET @offset = DateDiff(minute, GetUTCDate(), GetDate()) SET @localDateTime = DateAdd(minute, @offset, @utcDateTime) ปัญหาของฉันคือว่าถ้ากลางวันเวลาออมทรัพย์เกิดขึ้นระหว่างGetUTCDate()และ@utcDateTimeที่@localDateTimeสิ้นสุดขึ้นเป็นปิดชั่วโมง มีวิธีง่าย ๆ ในการแปลงจาก utc เป็นเวลาท้องถิ่นสำหรับวันที่ไม่ใช่วันที่ปัจจุบันหรือไม่? ฉันใช้ SQL Server 2005

4
วิธีค้นหาว่าใครลบข้อมูล SQL Server บ้าง
เจ้านายของฉันมีแบบสอบถามจากลูกค้าเมื่อวานนี้ถามว่าพวกเขาสามารถค้นหาผู้ที่ลบข้อมูลบางอย่างในฐานข้อมูล SQL Server ของพวกเขา (เป็นรุ่นด่วนหากเรื่องนั้น) ฉันคิดว่าสิ่งนี้สามารถพบได้จากบันทึกธุรกรรม (หากไม่ได้ถูกตัดทอน) - ถูกต้องหรือไม่ และถ้าเป็นเช่นนั้นคุณจะไปหาข้อมูลนี้ได้อย่างไร?

4
เหตุใดการรับรองความถูกต้องของ OS จึงถือว่าความปลอดภัยต่ำสำหรับฐานข้อมูล Oracle
Oracle กำลังลดการรับรองความถูกต้องของระบบปฏิบัติการตามคำแนะนำของOracle Database Securityซึ่งระบุว่า โปรดทราบว่าพารามิเตอร์ REMOTE_OS_AUTHENT นั้นเลิกใช้แล้วใน Oracle Database 11g รีลีส 1 (11.1) และจะถูกเก็บไว้สำหรับความเข้ากันได้แบบย้อนหลังเท่านั้น นอกจากนี้ข้อมูลและเครื่องมือความปลอดภัยส่วนใหญ่พิจารณาว่าการ รับรองความถูกต้องของ OS (ภายนอก)เป็นปัญหาด้านความปลอดภัย ฉันพยายามที่จะเข้าใจว่าทำไมถึงเป็นเช่นนี้ นี่คือข้อดีบางอย่างที่ฉันเห็นของการตรวจสอบ OS: หากไม่มีแอพพลิเคชั่นรับรองความถูกต้องของ OS จะต้องจัดเก็บรหัสผ่านไว้ในแอปพลิเคชันที่หลากหลายแต่ละแบบมีรูปแบบความปลอดภัยและช่องโหว่ของตนเอง การรับรองความถูกต้องของโดเมนนั้นจะต้องมีความปลอดภัยเพราะหากไม่ใช่ความปลอดภัยของฐานข้อมูลก็จะทำให้การเข้าถึงฐานข้อมูลช้าลง แต่ไม่สามารถป้องกันได้ ผู้ใช้ที่ต้องจำรหัสผ่านโดเมนเพียงรหัสเดียวสามารถสร้างรหัสผ่านโดเมนที่ปลอดภัยได้ง่ายกว่าที่พวกเขาสามารถสร้างรหัสผ่านฐานข้อมูลที่มีความปลอดภัยน้อยลงได้เนื่องจากจำนวนฐานข้อมูลที่แตกต่างกันที่พวกเขาต้องเชื่อมต่อเพื่อเพิ่ม

1
แนวทางสำหรับการบำรุงรักษาดัชนีข้อความแบบเต็ม
แนวทางใดที่ควรได้รับการพิจารณาสำหรับการรักษาดัชนีข้อความแบบเต็ม? ฉันควรสร้างใหม่หรือจัดระเบียบแค็ตตาล็อกข้อความแบบเต็ม (ดูBOL ) หรือไม่ จังหวะการบำรุงรักษาที่เหมาะสมคืออะไร ฮิวริสติกแบบใดที่คล้ายกับเกณฑ์การแตกแฟรกเมนต์ 10% และ 30%) สามารถใช้เพื่อกำหนดว่าเมื่อใดที่ต้องมีการบำรุงรักษา (ทุกอย่างด้านล่างเป็นเพียงข้อมูลเพิ่มเติมที่อธิบายรายละเอียดของคำถามและแสดงสิ่งที่ฉันคิดเกี่ยวกับจนถึงตอนนี้) ข้อมูลเพิ่มเติม: การวิจัยเริ่มต้นของฉัน มีจำนวนมากของทรัพยากรในการบำรุงรักษาดัชนี B-ต้นไม้ (เช่นคำถามนี้ , สคริปต์ Ola Hallengren ของและบล็อกโพสต์เกี่ยวกับเรื่องต่าง ๆ นานาจากเว็บไซต์อื่น ๆ ) อย่างไรก็ตามฉันพบว่าไม่มีทรัพยากรเหล่านี้ให้คำแนะนำหรือสคริปต์สำหรับการบำรุงรักษาดัชนี fulltext มีเอกสารของ Microsoftที่กล่าวถึงการจัดเรียงดัชนีดัชนีต้นไม้ของตารางฐานและจากนั้นดำเนินการ REORGANIZE ในแค็ตตาล็อกข้อความอาจปรับปรุงประสิทธิภาพ แต่ไม่ได้สัมผัสกับคำแนะนำเฉพาะใด ๆ เพิ่มเติม ฉันยังพบคำถามนี้แต่ส่วนใหญ่เน้นไปที่การติดตามการเปลี่ยนแปลง (การอัปเดตข้อมูลไปยังตารางอ้างอิงในดัชนี fulltext) อย่างไรและไม่ใช่ประเภทของการบำรุงรักษาตามกำหนดเวลาปกติที่สามารถเพิ่มประสิทธิภาพของดัชนีได้ ข้อมูลเพิ่มเติม: การทดสอบประสิทธิภาพขั้นพื้นฐาน นี้SQL ซอมีรหัสที่สามารถใช้ในการสร้างดัชนีข้อความเต็มกับAUTOการติดตามการเปลี่ยนแปลงและตรวจสอบทั้งขนาดและประสิทธิภาพการทำงานของดัชนีแบบสอบถามเป็นข้อมูลในตารางที่มีการแก้ไข เมื่อฉันเรียกใช้ตรรกะของสคริปต์บนสำเนาของข้อมูลการผลิตของฉัน (ตรงข้ามกับข้อมูลที่ประดิษฐ์ขึ้นในซอ) นี่คือบทสรุปของผลลัพธ์ที่ฉันเห็นหลังจากแต่ละขั้นตอนการปรับเปลี่ยนข้อมูล: แม้ว่าคำแถลงการปรับปรุงในสคริปต์นี้มีการวางแผนอย่างเป็นธรรม แต่ดูเหมือนว่าข้อมูลนี้จะแสดงให้เห็นว่ามีจำนวนมากที่ต้องได้รับจากการบำรุงรักษาตามปกติ ข้อมูลเพิ่มเติม: ความคิดเริ่มต้น …

5
ฉันจะป้อน Mongo เป็น superuser หรือรีเซ็ตผู้ใช้ได้อย่างไร
ฉันกำลังเล่นกับสิทธิ์และล็อคตัวเองออกจากฐานข้อมูล Mongo ฉันค่อนข้างแน่ใจว่าฉันทำสิ่งนี้โดยพยายามเพิ่มการเข้าถึงฐานข้อมูลอย่างชัดเจน แต่แทนที่จะเขียนทับการอนุญาตให้ใช้ฐานข้อมูลแทน ดังนั้นฉันจึงปิดกั้นฐานข้อมูล Mongo ของฉันอย่างมีประสิทธิภาพและทุกสิ่งที่ฉันอ่านบอกวิธีสร้างผู้ใช้ขั้นสูงถ้าฉันมีสิทธิ์ผู้ใช้เพิ่ม ตอนนี้ฉันไม่คิดว่าฉันมีผู้ใช้ที่มีสิทธิ์นั้น มีวิธีเข้าฐานข้อมูลเป็นการเข้าถึงทั้งหมดหรือไม่ ฉันเป็นเจ้าของเซิร์ฟเวอร์และมีสิทธิ์เข้าถึงรูต
29 mongodb 

4
EF Code First ใช้ nvarchar (สูงสุด) สำหรับสตริงทั้งหมด สิ่งนี้จะทำให้ประสิทธิภาพการค้นหาเสียหายหรือไม่
ฉันมีฐานข้อมูลบางส่วนที่สร้างขึ้นโดยใช้รหัสเอนทิตีกรอบแรก; แอพใช้งานได้และโดยทั่วไปฉันมีความสุขมากกับสิ่งที่ Code First ให้ฉันทำ ฉันเป็นโปรแกรมเมอร์คนแรกและ DBA ที่สองตามความจำเป็น ฉันกำลังอ่านเกี่ยวกับ DataAttributes เพื่ออธิบายเพิ่มเติมใน C # สิ่งที่ฉันต้องการให้ฐานข้อมูลทำ และคำถามของฉันคือฉันจะได้รับโทษอะไรจากการมีnvarchar(max)เงื่อนไขเหล่านี้ในตารางของฉัน (ดูตัวอย่างด้านล่าง) มีหลายคอลัมน์ในตารางนี้ ใน C # พวกเขาถูกกำหนดเช่น: [Key] [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)] public int ID { get; set; } public string Name { get; set; } public string Message { get; set; } public string Source { get; set; …

2
ความแตกต่างระหว่าง MATCH FULL, MATCH SIMPLE และ MATCH PARTIAL?
ฉันสังเกตเห็นMATCH SIMPLEและMATCH FULLแต่ฉันไม่เข้าใจสิ่งที่พวกเขาทำ ฉันเห็นค่าเริ่มต้นคือMATCH SIMPLE; แต่MATCHข้ออื่น ๆในFOREIGN KEYฟังก์ชันข้อ จำกัด ได้อย่างไร

2
การเข้าสู่ระบบมีบัญชีภายใต้ชื่อผู้ใช้อื่นแล้ว
เมื่อฉันรัน SQL นี้: USE ASPState GO IF NOT EXISTS(SELECT * FROM sys.sysusers WHERE NAME = 'R2Server\AAOUser') CREATE USER [R2Server\AAOUser] FOR LOGIN [R2Server\AAOUser]; GO ฉันได้รับข้อผิดพลาดต่อไปนี้: การเข้าสู่ระบบมีบัญชีภายใต้ชื่อผู้ใช้อื่นแล้ว ฉันจะรู้ได้อย่างไรว่าชื่อผู้ใช้ที่แตกต่างกันนี้สำหรับบัญชีเข้าสู่ระบบของฉันได้อย่างไร

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