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

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

3
“ WHERE 1 = 1” มักส่งผลกระทบต่อประสิทธิภาพการค้นหาหรือไม่
ฉันเพิ่งเห็นคำถาม"ที่ 1 = 1 คำสั่ง" ; สร้าง SQL ฉันได้ใช้บ่อยในการสร้าง SQL แบบไดนามิกในความพยายามที่จะเขียนรหัสสะอาด (จากมุมมองของภาษาโฮสต์) โดยทั่วไปแล้วการเพิ่มค่าสถานะ SQL จะส่งผลเสียต่อประสิทธิภาพการค้นหาหรือไม่ ฉันไม่ได้มองหาคำตอบเกี่ยวกับระบบฐานข้อมูลที่เฉพาะเจาะจง (เพราะฉันได้ใช้มันใน DB2, SQL Server, MS-Access และ mysql) - เว้นแต่ว่ามันจะเป็นไปไม่ได้ที่จะตอบโดยไม่เจาะจง

1
ฉันจะแปลงสตริงเป็นความแม่นยำสองเท่าใน PostgreSQL ได้อย่างไร [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับผู้ดูแลฐานข้อมูล Exchange Exchange ปิดให้บริการใน4 ปีที่แล้ว ฉันจะแปลงสตริงเป็นความแม่นยำสองเท่าใน PostgreSQL ได้อย่างไร ฉันลองทำสิ่งที่ชอบ: update points set latitude2 = cast(latitude as double) ; โดยที่ละติจูดเป็นสตริงและละติจูด 2 เป็นสองเท่า ฉันไม่สามารถทำงานได้
19 postgresql 

4
เป็นไปได้ในการสำรองและกู้คืนส่วนหนึ่งของฐานข้อมูลใน sql-server หรือไม่?
เรามีฐานข้อมูล SQL Server 2005 ที่เราถ่ายโอนจากเว็บไซต์ลูกค้าของเราเป็นประจำ การดำเนินการนี้ใช้เวลานานเนื่องจากเราไม่มีการเชื่อมต่อโดยตรงและต้องโอนไฟล์ผ่านแอปพลิเคชันการถ่ายโอนไฟล์ผ่านเว็บ ฐานข้อมูลปัจจุบันมีขนาดประมาณ 10GB แต่เราไม่ต้องการข้อมูลทั้งหมด - ส่วนใหญ่อยู่ในตารางตรวจสอบและตารางที่เก็บค่าที่คำนวณได้ซึ่งสามารถสร้างขึ้นใหม่ได้ ฉันดูที่การสร้างกลุ่มไฟล์เพื่อเก็บตารางการตรวจสอบและหวังว่าฉันจะสำรองและกู้คืนกลุ่มไฟล์หลักได้ ฉันสามารถสำรองข้อมูลได้ดี แต่เมื่อกู้คืนฉันพบข้อผิดพลาดแจ้งว่าฉันไม่ได้กู้คืนไปยังฐานข้อมูลเดียวกัน เป็นไปได้หรือไม่ที่จะกู้คืนส่วนหนึ่งของฐานข้อมูลไปยังเซิร์ฟเวอร์อื่นโดยใช้กลุ่มไฟล์? มีวิธีที่ดีกว่าในการทำเช่นนี้?

2
INT หรือ CHAR สำหรับเขตข้อมูลประเภท
การออกแบบที่ดีที่สุดสำหรับตารางคืออะไรTypeข้อมูลที่เป็นintหรือchar(1)? กล่าวอีกนัยหนึ่งให้คีมานี้: create table Car ( Name varchar(100) not null, Description varchar(100) not null, VehType .... not null ) มันมีประสิทธิภาพมากกว่า (ฉลาดในการทำงาน) VehTypeเพื่อที่จะเป็นintหรือchar(1)? สมมติว่าคุณมีรถยนต์ห้าประเภทคุณควรใช้ค่าที่เพิ่มขึ้น 0 -> 4 หรือตัวอักษรสำหรับประเภท (พูด; 'v', 's', 'c', 't', 'm')? หากเป็นมากกว่านั้นฉันจะใช้ตาราง Type แยกต่างหากและมีความสัมพันธ์กับคีย์ต่างประเทศ แต่ฉันไม่เห็นความต้องการดังกล่าว ฉันสังเกตเห็นว่าsys.objectsมุมมองแคตตาล็อกใช้อักขระสำหรับtypeฟิลด์ มีเหตุผลสำหรับสิ่งนั้นหรือไม่? ฉันเพิ่งจะคว้าที่อากาศที่นี่และมันเป็นสิ่งที่ฉันสะดวกสบายด้วยหรือไม่

3
แบบแผนการตั้งชื่อชื่อคอลัมน์และแนวปฏิบัติที่เหมาะสมที่สุด
ฉันต้องการความคิดเห็นของผู้เชี่ยวชาญบางประการเกี่ยวกับการปฏิบัติที่ดีที่สุดเมื่อมันมาถึงการตั้งชื่อคอลัมน์ พื้นหลังเป็นไปตาม Wikipedia , ไวยากรณ์ต่อไปนี้ SELECT ... FROM Employees JOIN Timesheets USING (EmployeeID); มีประสิทธิภาพมากกว่า SELECT ... FROM Employees JOIN Timesheets ON (Employees.EmployeeID = Timesheets.EmployeeID); อย่างไรก็ตามJOIN ... USINGไวยากรณ์ทำงานเฉพาะของคอลัมน์ที่สำคัญทั้งหมดหลักมีชื่อซ้ำกันทั่วโลก ดังนั้นฉันสงสัยว่านี่เป็นสิ่งที่ถูกต้องที่จะทำ ส่วนตัวผมมักจะใช้ในการสร้างตารางที่มีคอลัมน์ PK และคอลัมน์ที่สำคัญต่างประเทศid othertable_idแต่วิธีการมันเป็นไปไม่ได้ที่จะใช้หรือUSINGNATURAL JOIN การเชื่อมโยงใด ๆ กับสไตล์การออกแบบหรือแนวทางปฏิบัติที่ดีที่สุดสำหรับการออกแบบตารางจะได้รับการชื่นชมเช่นกัน!

3
การลดขนาดไฟล์บันทึกของ SQL Server มีผลต่อประสิทธิภาพอย่างไร
ฉันมีฐานข้อมูล SQL Server 2008 ที่มีไฟล์ข้อมูลขนาด 2GB บางส่วน แต่ไฟล์บันทึกมีขนาดเกิน 8GB ด้วยฐานข้อมูลก่อนปี 2551 ฉันสามารถใช้ 'บันทึกการสำรองข้อมูล' และTRUNCATE_ONLYตัวเลือก แต่ไม่สามารถใช้งานได้กับฐานข้อมูล 2008 และใหม่กว่า ฉันมีสคริปต์ที่ตัดทอนไฟล์บันทึก: USE [MyDatabase] GO ALTER DATABASE [MyDatabase] SET RECOVERY SIMPLE WITH NO_WAIT DBCC shrinkfile('MyDatabase_log', 1) ALTER DATABASE [MyDatabase] SET RECOVERY FULL WITH NO_WAIT GO สิ่งนี้จะตัดทอนไฟล์บันทึกอย่างสมบูรณ์ แต่คำถามของฉันคือ: สิ่งนี้มีผลกระทบต่อประสิทธิภาพหรือไม่ ฉันทำการสำรองข้อมูลเต็มรูปแบบสองครั้งต่อวันดังนั้นการบันทึกจึงไม่จำเป็นต้องมีความสำคัญเท่าที่ข้อมูลจะถูกนำไปใช้

3
ฉันจะบอกได้อย่างไรว่าแบบจำลองการกู้คืนฐานข้อมูล SQL ของฉันมีอะไร
มีคำสั่ง SQL ที่ฉันสามารถรันเพื่อกำหนดรูปแบบการกู้คืนของฐานข้อมูลของฉันได้หรือไม่? ฉันต้องการทราบว่าการกู้คืนเต็มหรือไม่

3
อะไรคือความแตกต่างระหว่างประเภทข้อมูล VARCHAR ของ Oracle และ VARCHAR2
เมื่อโอนย้ายตารางที่มาจาก DBMS อื่นไปยัง Oracle หนึ่งในภารกิจมาตรฐานคือการแทนที่VARCHAR(n)ฟิลด์ทั้งหมดด้วยVARCHAR2(n)ฟิลด์ (ระบุ n <= 4000) เหตุใด Oracle จึงเรียกประเภทข้อมูลนี้VARCHAR2และไม่VARCHARเหมือนกับ DBMS อื่น ๆ
19 oracle  datatypes 

5
ทำไมคีย์หลักถึงมีชื่อเป็นของตนเอง
จากมุมมองทางคณิตศาสตร์เมื่อพิจารณาว่าตารางมีคีย์หลักมากที่สุดหนึ่งตัวดูเหมือนว่าเป็นการตัดสินใจแบบสั้น ๆ ที่อ้างถึงคีย์หลักโดยใช้ชื่อโดยพลการแทนชื่อของคุณสมบัติตารางธรรมดา ผลที่ตามมาคือการเปลี่ยนคีย์หลักจาก nonclustered เป็นคลัสเตอร์หรือในทางกลับกันคุณต้องค้นหาชื่อก่อนแล้วปล่อยมันและอ่านมันในที่สุด มีประโยชน์ในการใช้ชื่อโดยพลการที่ฉันไม่เห็นหรือมี DBMS ไม่ใช้ชื่อโดยพลการสำหรับคีย์หลัก? แก้ไข 2011-02-22 (02/22/2011 สำหรับผู้ที่ไม่ต้องการเรียงวันที่): ให้ฉันแสดงฟังก์ชั่นที่คุณสามารถหาชื่อของคีย์หลักจากชื่อตาราง (ใช้ตารางระบบ sybase sql-Sever aka หรือต้น): create function dbo.get_pk (@tablename sysname) returns sysname as begin return (select k.name from sysobjects o join sysobjects k on k.parent_obj = o.id where o.name = @tablename and o.type = 'U' and …

9
เครื่องมือในการตรวจสอบประสิทธิภาพฐานข้อมูล Oracle ใน Standard Edition [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับผู้ดูแลฐานข้อมูล Exchange Exchange ปิดให้บริการใน2 ปีที่ผ่านมา นี่คือสิ่งที่ฉันกำลังมองหา: ใช้งานได้กับ Standard Edition เช่นไม่มีชุดวินิจฉัย ให้ข้อมูลประสิทธิภาพทั้งในปัจจุบันและในอดีต ภาพที่ดีสำหรับการมองเห็นแนวโน้มและการนำเสนอที่ง่ายต่อการจัดการ หากคุณใช้เครื่องมือนี้ฉันจะสนใจในข้อดีและข้อเสียที่คุณค้นพบ ฉันสามารถสร้างรายการขึ้นมาได้ แต่ความเข้าใจที่ลึกซึ้งเกี่ยวกับการใช้เครื่องมือมีค่ามากกว่า

4
SSD ที่มี Oracle
เราได้พิจารณาถึงการใช้ SSD กับ Oracle เพื่อเร่งความเร็วในการโยกย้ายการทดสอบของเรา ขณะนี้ใช้เวลา 12-18 ชั่วโมงในการดำเนินการย้ายข้อมูลให้เสร็จสิ้นโดยขึ้นอยู่กับปริมาณของข้อมูล เรามีกล่องลินุกซ์ราคาถูกจำนวนหนึ่งที่เราใช้สำหรับการรันและวิเคราะห์ต่างๆ ราคาของ SSD โดยตรงจาก Dell นั้นเป็นสิ่งต้องห้าม ฉันสงสัยว่าใครมีประสบการณ์ในการใช้ SSD ของผู้บริโภค (เช่น Crucial / Micron) ฉันรู้ว่าการสนับสนุน TRIM จะเป็นปัญหาใน Linux (โดยใช้ Centos) มีใครใช้มันใน Windows 7 เพื่อตอบโต้เรื่องนี้หรือไม่?

6
Oracle สร้างไดอะแกรม ER และพจนานุกรมข้อมูล
ฉันยังใหม่กับฐานข้อมูล Oracle และต้องการพัฒนาพจนานุกรมข้อมูลและไดอะแกรม ER สำหรับฐานข้อมูลที่มีอยู่ของเรา คุณมีเคล็ดลับสคริปต์เครื่องมือในการทำเช่นนั้นหรือไม่?

4
เมื่อใช้ ORM สิ่งที่ต้องระวังในการออกแบบฐานข้อมูลของคุณคืออะไร
Gotchas ออกแบบฐานข้อมูลอะไรบ้างที่ต้องระวังเมื่อคุณรู้ว่าฐานข้อมูลจะถูกเข้าถึงโดยใช้Wikipedia Object Relational Mapper (ORM) ? ดูที่ Entity Framework NHibernate หรือ LLBLGenPro ตัวอย่างเช่นฉันจะบันทึกข้อ จำกัด พารามิเตอร์ 2100 ในการเรียก RPC ของ SqlServer ปัญหานี้เป็นปัญหาเมื่อใช้ LLBLGen และเข้าร่วมเมื่อตารางคีย์หลักสารประกอบถูกนำมาใช้ดูบทความ MSDN สำหรับคีย์สารประกอบ
19 performance  orm 

3
ทางเลือกอื่นในการต่อสตริงหรือดำเนินการตามขั้นตอนเพื่อป้องกันการทำซ้ำรหัสแบบสอบถาม SQL?
คำเตือน: โปรดอดทนกับฉันในฐานะคนที่ใช้ฐานข้อมูลเพียงเล็กน้อยในเวลาทำงานของเขา (ส่วนใหญ่ฉันใช้การเขียนโปรแกรม C ++ ในงานของฉัน แต่ทุกเดือนที่แปลกฉันต้องค้นหา / แก้ไข / เพิ่มบางสิ่งในฐานข้อมูล Oracle) ฉันจำเป็นต้องเขียนแบบสอบถาม SQL ที่ซับซ้อนซ้ำ ๆ ทั้งสำหรับคิวรีแบบเฉพาะกิจและแบบสอบถามที่มีอยู่ในแอปพลิเคชัน การเขียนสิ่งที่น่ารังเกียจในภาษาโปรแกรมแบบดั้งเดิมจะทำให้คุณประสบปัญหาอย่างหนัก แต่ฉัน ( I ) ยังไม่สามารถหาเทคนิคที่เหมาะสมในการป้องกันการทำซ้ำรหัสแบบสอบถาม SQL แก้ไข: 1 ผมอยากจะขอบคุณ answerers ที่ให้การปรับปรุงที่ดีในการเดิมของฉันตัวอย่างเช่น อย่างไรก็ตามคำถามนี้ไม่เกี่ยวกับตัวอย่างของฉัน มันเกี่ยวกับการทำซ้ำในแบบสอบถาม SQL เป็นเช่นนี้คำตอบ ( JackP , ลีห์ ) เพื่อให้ห่างไกลจะได้งานที่ดีของการแสดงให้เห็นว่าคุณสามารถลด repetitiveness โดยการเขียนคำสั่งที่ดีกว่า อย่างไรก็ตามแม้แล้วคุณเผชิญ repetitiveness บางอย่างที่เห็นได้ชัดว่าไม่สามารถเอาออก: นี่เสมอ nagged ฉันกับ SQL ในภาษาการเขียนโปรแกรม "ดั้งเดิม" …

2
MySQL VARCHAR และ TEXT แตกต่างกันอย่างไร?
หลังจากเวอร์ชัน 5.0.3 (ซึ่งอนุญาตให้ VARCHAR เป็น 65,535 ไบต์และหยุดการตัดทอนช่องว่างต่อท้าย) มีความแตกต่างที่สำคัญระหว่างสองประเภทข้อมูลหรือไม่ ฉันกำลังอ่านรายการความแตกต่างและโน้ตสองข้อเท่านั้นคือ: สำหรับดัชนีในคอลัมน์ BLOB และ TEXT คุณต้องระบุความยาวส่วนนำหน้าดัชนี สำหรับ CHAR และ VARCHAR ความยาวของคำนำหน้าเป็นทางเลือก ดูหัวข้อ 7.5.1“ ดัชนีคอลัมน์” และ คอลัมน์ BLOB และ TEXT ไม่สามารถมีค่าเริ่มต้นได้ ดังนั้นเนื่องจากข้อ จำกัด สองข้อนี้ในประเภทข้อมูล TEXT ทำไมคุณถึงใช้มากกว่า varchar (65535) มีผลการดำเนินงานที่แตกต่างกันอย่างใดอย่างหนึ่ง?

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