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

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

4
ยังผิดไหมที่จะเริ่มต้นชื่อผู้ใช้ที่จัดเก็บโพรซีเดอร์ด้วย sp_?
หนึ่งในเพื่อนร่วมงานของฉันตั้งชื่อกระบวนงานที่เก็บไว้ในฐานข้อมูล SQL Server 2008 R2 ของsp_somethingเรา เมื่อฉันเห็นสิ่งนี้ฉันก็คิดทันที: "นั่นมันผิด!" และเริ่มค้นหาบุ๊กมาร์กของฉันสำหรับบทความออนไลน์นี้ซึ่งอธิบายว่าทำไมมันผิดดังนั้นฉันจึงสามารถให้คำอธิบายแก่เพื่อนร่วมงานของฉันได้ ในบทความ (โดยBrian Moran ) มีการอธิบายว่าการให้ขั้นตอนการจัดเก็บคำนำหน้าsp_ทำให้ SQL Server ดูที่ฐานข้อมูลหลักสำหรับแผนรวบรวม เนื่องจากsp_sprocไม่ได้อยู่ที่นั่น SQL Server จะคอมไพล์โพรเซสอีกครั้ง ตัวอย่างต่อไปนี้ให้ไว้ในบทความเพื่อแสดงความแตกต่างระหว่างสองขั้นตอน: USE tempdb; GO CREATE PROCEDURE dbo.Select1 AS SELECT 1; GO CREATE PROCEDURE dbo.sp_Select1 AS SELECT 1; GO EXEC dbo.sp_Select1; GO EXEC dbo.Select1; GO คุณรันสิ่งนี้จากนั้นเปิด Profiler (เพิ่มกระบวนงานที่เก็บไว้ -> SP:CacheMissเหตุการณ์) …

3
ตารางที่มีค่าพารามิเตอร์เป็นพารามิเตอร์ผลลัพธ์สำหรับกระบวนงานที่เก็บไว้
มันเป็นไปได้ที่จะใช้พารามิเตอร์ที่มีมูลค่าเป็นตารางสำหรับพารามิเตอร์ขาออกสำหรับกระบวนงานที่เก็บไว้หรือไม่ นี่คือสิ่งที่ฉันต้องการทำในรหัส /*First I create MY type */ CREATE TYPE typ_test AS TABLE ( id int not null ,name varchar(50) not null ,value varchar(50) not null PRIMARY KEY (id) ) GO --Now I want to create stored procedu whic is going to send output type I created, --But it looks …

5
ฉันจะออกแบบตารางความสัมพันธ์สำหรับมิตรภาพได้อย่างไร
ถ้าAเป็นเพื่อนBแล้วฉันควรเก็บค่าทั้งสองABและBAหรือหนึ่งก็พอ? ข้อดีและข้อเสียของทั้งสองวิธีคืออะไร นี่คือการสังเกตของฉัน: ถ้าฉันเก็บทั้งคู่ไว้ฉันต้องอัปเดตทั้งคู่เมื่อได้รับคำขอจากเพื่อน หากฉันไม่เก็บทั้งสองไว้ฉันก็พบว่ามันยากเมื่อต้องทำหลายอย่างJOINกับตารางนี้ ปัจจุบันฉันรักษาความสัมพันธ์ไว้ทางเดียว แล้วฉันควรทำอย่างไรในกรณีนี้? คำแนะนำใด ๆ?

3
ทุกตารางควรมีคีย์หลักตัวแทน / ฟิลด์หลักเทียมหรือไม่
ฉันเข้าใจถึงประโยชน์อย่างหนึ่งของคีย์ตัวแทนเสมือน / คีย์ประดิษฐ์โดยทั่วไป - มันไม่เปลี่ยนแปลงและสะดวกสบายมาก สิ่งนี้เป็นจริงไม่ว่าจะเป็นเขตข้อมูลเดียวหรือหลายเขตข้อมูลตราบใดที่พวกเขาเป็น 'ประดิษฐ์' อย่างไรก็ตามบางครั้งดูเหมือนว่าเป็นเรื่องของนโยบายที่จะมีฟิลด์จำนวนเต็มที่เพิ่มขึ้นอัตโนมัติเป็นคีย์หลักของแต่ละตาราง นี่เป็นความคิดที่ดีที่สุดเสมอหรือไม่ที่จะมีคีย์ฟิลด์เดียวและทำไม (หรือทำไมไม่) เพื่อความชัดเจนคำถามนี้ไม่เกี่ยวกับการประดิษฐ์เทียบกับธรรมชาติ แต่เกี่ยวกับว่ากุญแจเทียมทั้งหมดควรเป็นแบบ Single-field หรือไม่

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

2
การใช้ข้อยกเว้นในนิพจน์ตารางแบบเรียกซ้ำ
เหตุใดแบบสอบถามต่อไปนี้จึงส่งกลับแถวที่ไม่มีที่สิ้นสุด ฉันคาดว่าจะมีEXCEPTประโยคที่จะยุติการสอบถามซ้ำ .. with cte as ( select * from ( values(1),(2),(3),(4),(5) ) v (a) ) ,r as ( select a from cte where a in (1,2,3) union all select a from ( select a from cte except select a from r ) x ) select a from r ฉันเจอสิ่งนี้ในขณะที่พยายามตอบคำถามเกี่ยวกับ …

2
ลำดับของคอลัมน์ในดัชนี PK มีความสำคัญหรือไม่?
ฉันมีตารางที่มีขนาดใหญ่มากไม่กี่แห่งที่มีโครงสร้างพื้นฐานแบบเดียวกัน แต่ละคนมีRowNumber (bigint)และDataDate (date)คอลัมน์ ข้อมูลถูกโหลดโดยใช้ SQLBulkImport ทุกคืนและไม่มีการโหลดข้อมูล "ใหม่" - บันทึกประวัติ (SQL Standard ไม่ใช่ Enterprise ดังนั้นจึงไม่มีการแบ่งพาร์ติชัน) เนื่องจากข้อมูลแต่ละบิตจำเป็นต้องเชื่อมโยงกลับไปที่ระบบอื่น ๆ และการRowNumber/DataDateรวมกันแต่ละครั้งไม่ซ้ำกันนั่นคือคีย์หลักของฉัน ฉันสังเกตเห็นว่าเนื่องจากวิธีที่ฉันกำหนด PK ใน SSMS Table Designer RowNumberแสดงรายการที่หนึ่งและDataDateสอง ฉันยังสังเกตเห็นว่าการกระจายตัวของฉันมักจะสูงมาก ~ 99% ตอนนี้เพราะแต่ละรายการDataDateปรากฏเพียงครั้งเดียวฉันคาดว่าเครื่องมือสร้างดัชนีจะเพิ่มไปยังหน้าเว็บในแต่ละวัน แต่ฉันสงสัยว่าจริง ๆ แล้วการจัดทำดัชนีอิงตามลำดับRowNumberแรกหรือไม่และต้องเปลี่ยนทุกอย่างอื่นหรือไม่ Rownumberไม่ใช่คอลัมน์ข้อมูลประจำตัว แต่เป็น int ที่สร้างขึ้นโดยระบบภายนอก (น่าเศร้า) DataDateมันรีเซ็ตในช่วงเริ่มต้นของแต่ละคน ตัวอย่างข้อมูล RowNumber | DataDate | a | b | c..... 1 |2013-08-01| …

2
วิธีที่ดีที่สุดในการเติมคอลัมน์ใหม่ในตารางขนาดใหญ่?
เรามีตาราง 2.2 GB ใน Postgres ที่มี 7,801,611 แถว เรากำลังเพิ่มคอลัมน์ uuid / guid ลงไปและฉันสงสัยว่าวิธีที่ดีที่สุดในการเติมข้อมูลคอลัมน์นั้นคืออะไร (ตามที่เราต้องการเพิ่มNOT NULLข้อ จำกัด ) หากฉันเข้าใจ Postgres อย่างถูกต้องการอัปเดตเป็นเทคนิคลบและแทรกดังนั้นนี่คือการสร้างตาราง 2.2 gb ใหม่ทั้งหมด นอกจากนี้เรายังมีทาสวิ่งอยู่ดังนั้นเราจึงไม่ต้องการให้มันล้าหลัง มีวิธีใดที่ดีไปกว่าการเขียนสคริปต์ที่ค่อยๆเติมมันลงไปตามกาลเวลา?


5
ผู้ประกอบการเชิงตรรกะหรือและในสภาพและคำสั่งของเงื่อนไขในที่
ตรวจสอบข้อความทั้งสองนี้: IF (CONDITION 1) OR (CONDITION 2) ... IF (CONDITION 3) AND (CONDITION 4) ... ถ้าCONDITION 1เป็นTRUEจะCONDITION 2ถูกตรวจสอบ? ถ้าCONDITION 3เป็นFALSEจะCONDITION 4ถูกตรวจสอบ? สิ่งที่เกี่ยวกับเงื่อนไขWHERE: เครื่องยนต์ SQL Server ปรับเงื่อนไขทั้งหมดในWHEREข้อ? โปรแกรมเมอร์ควรวางเงื่อนไขในลำดับที่ถูกต้องเพื่อให้แน่ใจว่าเครื่องมือเพิ่มประสิทธิภาพ SQL Server แก้ไขได้อย่างถูกต้องหรือไม่? เพิ่ม: ขอบคุณแจ็คสำหรับลิงก์แปลกใจจากรหัส t-sql: IF 1/0 = 1 OR 1 = 1 SELECT 'True' AS result ELSE SELECT 'False' AS result …

3
ความแตกต่างระหว่างลดขนาดฐานข้อมูลและไฟล์คืออะไร?
DBCC ShrinkDatabase() DBCC ShrinkFile() ฉันต้องรันทั้งสองคำสั่ง DBCC เพื่อลดขนาดฐานข้อมูลหรือไม่? ความแตกต่างระหว่างสองสิ่งข้างต้นนี้คืออะไร?

4
ฉันจะรับขนาดข้อมูลจริงต่อแถวในตาราง SQL Server ได้อย่างไร
ฉันพบสคริปต์นี้ sql-server-2005-reach-table-row-row-size-limit ที่ดูเหมือนจะส่งคืนขนาดแถวตามความยาวประเภทข้อมูลที่กำหนดไว้ ฉันต้องการสคริปต์ที่จะให้แถวทั้งหมดในตารางที่ขนาดข้อมูลสูงสุดของพวกเขามากกว่า 8024 ที่แนะนำ (สิ่งที่ MS แนะนำ)
33 sql-server 

7
จะดูรายการฐานข้อมูลใน Oracle ได้อย่างไร
เทียบเท่ากับSHOW DATABASESคำสั่งMySQL หรือไม่ เป็นไปได้หรือไม่ที่จะค้นหาฐานข้อมูลในคลัสเตอร์? ฐานข้อมูลเช่นปัจจุบันในเครือข่ายในระบบอื่น ๆ ? ฉันสามารถวิเคราะห์ไฟล์ที่มีอยู่ในการติดตั้ง Oracle เพื่อค้นหาไฟล์เดียวกันได้หรือไม่? ให้สิทธิ์การเข้าถึงที่สมบูรณ์ให้กับระบบ Oracle คุณจะระบุฐานข้อมูลทั้งหมดที่มีอยู่อย่างไร
33 oracle 

7
คัดลอกโครงสร้างที่สมบูรณ์ของตาราง
ใช้วิธีการบางอย่างเมื่อคุณสร้างสำเนาของตารางที่คุณสูญเสียดัชนี, PK, FK เป็นต้นตัวอย่างเช่นใน SQL Server ฉันสามารถพูดได้: select * into dbo.table2 from dbo.table1; นี่เป็นเพียงสำเนาอย่างง่ายของตาราง ดัชนี / ข้อ จำกัด ทั้งหมดหายไป ฉันจะคัดลอกโครงสร้างตาราง (โดยไม่ใช้การสำรองข้อมูล) ได้อย่างไร ฉันกำลังมองหาที่จะทำด้วยตนเองเป็นหลัก แต่ถ้าเป็นไปไม่ได้ที่ฉันจะยอมรับวิธีการแก้ปัญหาใด ๆ

2
Mongodump: ฟิลด์ 'สแนปชอต' ที่ไม่รู้จัก
ฉันใช้ mongodump จากเครื่องมือ mongo เพื่อดาวน์โหลดสำเนาสำรองของเซิร์ฟเวอร์ของฉัน อย่างไรก็ตามในขณะที่ฉันเรียกใช้คำสั่งคำสั่งจะส่งคืน "snapshot" ของฟิลด์ที่ไม่รู้จัก ข้อผิดพลาดทั้งหมดคือ: Failed: error reading collection: Failed to parse: { find: "data", skip: 0, snapshot: true, $readPreference: { mode: "secondaryPreferred" }, $db: "xxx" }. Unrecognized field 'snapshot'. Mongodump - รุ่นที่ส่งคืน: mongodump version: built-without-version-string git version: built-without-git-spec Go version: go1.7.3 os: linux arch: amd64 …

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