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

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

2
ฉันจะใช้ฐานข้อมูล / ตารางเป็นกองซ้อนได้อย่างไร
ฉันมีเครื่องรัฐซึ่งจำเป็นต้องผลักดัน / ป๊อปอัพชื่อไฟล์บางอย่างสำหรับผู้ใช้ที่แตกต่างกัน ฉันมักจะใช้สแต็คเป็นทางเลือกของโครงสร้างข้อมูล แต่ต้องทำโดยใช้ฐานข้อมูลเนื่องจากฉันไม่มีวิธีที่จะเก็บโครงสร้างข้อมูลระหว่างการร้องขอเว็บขาเข้า ฉันสงสัยว่าอะไรจะเป็นวิธีที่ดีในการใช้ฟังก์ชันการทำงานของกองซ้อนโดยใช้ฐานข้อมูล ฉันต้องการการสนับสนุน: push (fileName, user): push a fileName สำหรับผู้ใช้ ป๊อป (ผู้ใช้): แสดงชื่อไฟล์ที่ดีที่สุดสำหรับผู้ใช้ แก้ไข : ฉันกำลังสร้างต้นแบบของแนวคิดดังนั้นฉันจึงใช้ sqlite3 กับ python ขอบคุณ!

5
การใช้บรรทัดคำสั่งของ SQL Server? เป็นไปได้ไหม?
ฉันพยายามใช้ SQL Server Management Studio 2008 ที่สร้างขึ้นใน "Solution Explorer" เพื่อจัดการโครงการและหลังจาก 2 สัปดาห์ของการดิ้นรนกับมันฉันตัดสินใจว่าฉันไม่สนใจจริงๆ มันเป็นคุณสมบัติ "ความสะดวกสบาย" ที่จริงแล้วค่อนข้างเป็นอุปสรรค น่าเสียดายที่ที่ที่ฉันทำงานคือร้านขายของ MS และค่อนข้างติดอยู่กับที่ ฉันต้องการกลับไปที่บรรทัดคำสั่ง (ฉันอยากเป็นกลุ่ม!) ฉันได้ติดตั้งที่เก็บโค่นล้มท้องถิ่นด้วย TortiseSVN ส่วนหน้าเพื่อแทนที่ "Solution Explorer" ที่กล่าวถึงข้างต้นและให้มันทำงานได้ค่อนข้างดี ฉันได้ติดตั้ง Vim แล้วและในขณะที่ยังคงปรับแต่งมันอยู่ อย่างไรก็ตามสิ่งหนึ่งที่ฉันยังหาวิธีแก้ไขคือวิธีการเรียกใช้คำสั่งไปยัง SQL Server ผ่านทางบรรทัดคำสั่ง ฉันเคยชินกับพรอมต์บรรทัดคำสั่งของ MySQL / Postgres เพราะนั่นคือสิ่งที่ฉันเคยใช้ในอดีตและใช้ในขณะที่เรียนวิชา อย่างไรก็ตามฉันไม่สามารถหาวิธีเรียกใช้สคริปต์ของฉันผ่านทางบรรทัดคำสั่งใน windows ได้ ขณะนี้ฉันแก้ไขเป็นกลุ่ม, รีเฟรชหน้าเว็บใน SSMS และดำเนินการ ฉันไม่ต้องการแม้แต่แตะที่ SMSS หากจำเป็น ฉันเห็นโพสต์แนะนำ sqlsharp …

2
InnoDB สร้างข้อผิดพลาดของตาราง:“ ขนาดแถวใหญ่เกินไป”
เรามีวิศวกรบางคนที่แผ่โครงสร้างฐานข้อมูลให้เป็นมาตรฐานในตารางชั่วคราวเพื่อวัตถุประสงค์ในการสร้างรายงาน คอลัมน์มีการระบุไว้เป็นTEXT NOT NULL(ฉันรู้ว่า "ทำไมพวกเขาถึงทำอย่างนั้น?" ขอแค่สมมติว่าเรากำลังพูดถึงเรื่องนี้) เราใช้ MySQL 5.1.48 Community RHEL5 กับปลั๊กอิน InnoDB 1.0.9 บน Linux เมื่อใช้ MyISAM เราไม่เคยพบข้อ จำกัด ขนาดตารางของคอลัมน์สูงสุดหรือความยาวแถวสูงสุด (ในระหว่างการตรวจสอบเราได้ จำกัด จำนวนคอลัมน์สูงสุดที่ 2598 (2599 ข้อผิดพลาดทำให้เกิดข้อผิดพลาด 1117) ด้วย InnoDB เรากำลังขีด จำกัด ขีด จำกัด เหล่านี้ ตาราง (ไม่มีการแทรกข้อมูล) เป็น: ข้อผิดพลาด 1118 (42000) ที่บรรทัด 1: ขนาดแถวใหญ่เกินไป ขนาดแถวสูงสุดสำหรับประเภทตารางที่ใช้ไม่นับ BLOB คือ 8126 คุณต้องเปลี่ยนบางคอลัมน์เป็น TEXT …
11 mysql  innodb 

1
BLOB หรือการอ้างอิงใน PostgreSQL
ฉันต้องการจัดเก็บไฟล์ข้อมูลไบนารีในฐานข้อมูล PostgreSQL ซึ่งทำงานบนเซิร์ฟเวอร์ Ubuntu ตอนแรกจะมีไฟล์ขนาดไม่กี่โหลประมาณ 250kb ต่อไฟล์ อย่างไรก็ตามจำนวนไฟล์จะเพิ่มขึ้นเมื่อเวลาผ่านไป บางครั้งฉันอาจจำเป็นต้องดึงข้อมูลจากไฟล์สำหรับการวิเคราะห์ดาวน์สตรีมอื่น ๆ ฉันได้ทำการวิจัยบางอย่างเกี่ยวกับคำถามอายุของการจัดเก็บข้อมูลไบนารีเป็น BLOB หรือการอ้างอิง ทั้งสองเห็นได้ชัดว่ามีข้อดีและข้อเสีย มีปัญหาเฉพาะที่เกี่ยวข้องกับ PostgreSQL ที่ฉันควรทราบหรือไม่? เป็นวิธีหนึ่งหรือวิธีที่ดีกว่าถ้าฉันต้องการดึงข้อมูลจากไฟล์ทั้งผ่านฟังก์ชั่น PostgreSQL หรือผ่านโปรแกรม Python ภายนอก? ถ้าฉันจะจัดเก็บไฟล์ข้อมูลโดยตรงในฐานข้อมูลมันจะดีกว่าหรือไม่ที่จะเก็บไว้ในตารางที่แยกต่างหากพร้อมกับคีย์ต่างประเทศที่อ้างอิงถึงตาราง "main" แทนที่จะเป็นตารางที่มีฟิลด์อื่นทั้งหมด ฉันได้อ่านคำถามและคำตอบที่นี่ ; ความคิดเห็นมีแสดงให้เห็นว่าการจัดเก็บไฟล์ไบนารีโดยอ้างอิง (ในระบบไฟล์) บน Linux จะดีกว่า คำถามของฉันเกี่ยวข้องกับ PostgreSQL โดยเฉพาะและเพื่อดึงข้อมูลจากไฟล์สำหรับการวิเคราะห์ที่หลากหลาย อัปเดต: คล้ายคำถาม
11 postgresql 

5
วิธีที่ดีที่สุดในการค้นหาจำนวนระเบียนที่ไม่มีหมายเลขโทรศัพท์ที่เหมาะสมใน SQL Server คืออะไร?
ฉันมีสาขาที่ผู้คนในอดีตสามารถใช้เพื่อให้คุณค่าได้อย่างอิสระ ฉันต้องระบุระเบียนที่ไม่มีค่าที่เหมาะสมเพื่อให้ฉันสามารถทำความสะอาดได้ ฉันได้ดูรอบนี้ใน SSIS ความชอบของฉันคือการใช้องค์ประกอบสคริปต์ที่มีการแสดงออก regex ในบางรหัส C # ตามด้วยการเปลี่ยนเส้นทาง ถึงกระนั้นฉันก็สงสัยว่ามีวิธีใน SSIS ที่จะทำเช่นนี้โดยไม่ต้องหันไปใช้ C # ฉันไม่ได้มีโชคมากมายในการค้นหาวิธีการค้นหาว่ามีกี่ระเบียนที่ไม่มีหมายเลขโทรศัพท์ที่เหมาะสม

2
“ ใหญ่เกินไป” สำหรับ SQL 2008 Web Edition มีขนาดใหญ่เพียงใด
สำหรับแอปพลิเคชั่นที่จะเป็นโฮสต์ของเราฉันต้องเลือกระหว่าง SQL Server 2008 Web edition และ SQL Server 2008 Enterprise edition ไม่มีฟังก์ชั่น "ต้องมี": แอปพลิเคชันทำงานบน SQL Express ในขณะนี้ แต่จะเกินขนาดสูงสุด 10GB ที่ SQL Express เรียกเก็บ ฉันกำลังดูแผนภูมิเปรียบเทียบนี้และตารางที่สำคัญที่สุดในหน้านี้ "ความยืดหยุ่นและประสิทธิภาพ" เมื่อตารางมีขนาดใหญ่ขึ้นฟังก์ชันการทำงานเช่น "การแบ่งพาร์ติชันของตารางและดัชนี" จึงเป็นสิ่งสำคัญในการรับประกันความเร็ว แต่จะต้องใช้ขนาดโต๊ะแบบไหน? ฉันควรใช้กลยุทธ์ใดในการพิจารณาว่าขนาดและการใช้ฐานข้อมูลของฉันต้องการฟังก์ชันการปรับขนาดองค์กรและประสิทธิภาพหรือไม่

4
จะค้นหาพื้นที่จริงที่ดัชนีใช้อยู่บนตารางใน Oracle ได้อย่างไร
ฉันต้องการค้นหาพื้นที่จริงที่ถูกใช้โดยดัชนีบนโต๊ะใน oracle 10g ฉันไม่ต้องการรวมพื้นที่ที่สงวนไว้โดย oracle สำหรับการใช้งานในอนาคต (ไม่ควรพิจารณาค่าใช้จ่ายโดย oracle) ฉันต้องการไบต์ที่ใช้ไม่ใช่ไบต์ที่ปันส่วน คุณช่วยฉันก้าวไปข้างหน้าได้ไหม? นอกจากนี้ยังมีวิธีการหาขนาดที่แท้จริงของเขตข้อมูลยาวในตาราง PS: vsize () และ dbms_lob.getlength () ไม่ทำงาน

1
มีวิธีที่เชื่อถือได้ในการกำหนดเมื่อคุณควรเรียกใช้ DBCC CLEANTABLE เพื่อเรียกคืนพื้นที่หรือไม่
เมื่อเร็ว ๆ นี้แทนที่จะเพิ่งเพิ่มไฟล์เมื่อพวกเขาใกล้ถึงการใช้ไฟล์ 80% ฉันได้ทำเชิงรุกมากขึ้นในการเรียกคืนพื้นที่ผ่านเทคนิคทั่วไปเช่นการจัดเรียงข้อมูลฮีปเพิ่มและวางดัชนีคลัสเตอร์การใช้การบีบอัดแถวหรือหน้าเป็นต้น แต่มีเพียงไม่กี่กรณีที่ผมสามารถที่จะเรียกคืนพื้นที่มากยิ่งขึ้นโดยการดำเนินการDBCC CLEANTABLE ด้วยฐานข้อมูลหลายร้อยในสภาพแวดล้อมของฉันมันเป็นไปไม่ได้ที่จะรู้ว่าสิ่งที่ผู้ใช้ทำในแต่ละคนและเป็นที่ยอมรับอย่างสมบูรณ์ว่าจะมีการเปลี่ยนแปลงที่เกี่ยวข้องกับการลดลงของคอลัมน์ความยาวคงที่ ฉันมักจะพบโอกาสเหล่านี้โดยดูที่การนับแถวกับจำนวนหน้าในสคริปต์การใช้พื้นที่วัตถุบางอย่างที่ฉันเขียน ฉันต้องการดำเนินการขั้นตอนต่อไปโดยพยายามตรวจจับสถานการณ์เหล่านี้โดยอัตโนมัติ สิ่งที่ฉันอยากรู้คือถ้ามีใครบางคนกำลังติดตามโอกาสประเภทนี้อย่างกระตือรือร้นและถ้าเป็นเช่นนั้นคุณมองหาอะไรเป็นพิเศษ ความคิดของฉันคือการเขียนบางอย่างตามแนวการรวบรวมขนาดสูงสุดและต่ำสุดของแถวจำนวนแถวในตารางจำนวนหน้าที่จัดสรรและจำนวนหน้าที่ใช้แล้วทำคณิตศาสตร์พื้นฐานเพื่อบันทึกผลลัพธ์ที่ อยู่ข้างนอกสิ่งที่จะ "คาดหวัง"


2
วิธีการเชื่อมต่อกับฐานข้อมูลอื่นโดยใช้ขั้นตอนการจัดเก็บ?
ฉันต้องการรับข้อมูลบางอย่างจากฐานข้อมูลภายนอกและทำการคำนวณบางอย่างกับฐานข้อมูลอื่นเป็นไปได้หรือไม่ที่จะเชื่อมต่อกับฐานข้อมูลภายนอกจากกระบวนงานที่เก็บไว้? ขอบคุณเพื่อน. PS ฉันใช้ Oracle และฐานข้อมูลทั้งสองอยู่ในเซิร์ฟเวอร์เดียวกัน

2
มีใครใช้คุณสมบัติ SQL Server เพื่อสร้างกลุ่มของขั้นตอนการจัดเก็บแตกต่างกันตามหมายเลขหรือไม่
คำถามหมายถึงพารามิเตอร์ number ในเอกสารคู่มือmsdnนี้ หากคุณไม่สามารถสร้างโพรซีเดอร์ที่เก็บไว้จำนวนมากใน SQL-Server สร้างความแตกต่างด้วยหมายเลขแล้วปล่อยด้วยการดรอปเพียงครั้งเดียว create procedure dbo.stored_proc1 as select 1 go create procedure dbo.stored_proc1;2 as select 2 go exec stored_proc1 -- returns 1 go exec stored_proc1;2 -- returns 2 go drop stored_proc1 -- drops both go ฉันสงสัยว่าทุกคนจะใช้คุณลักษณะนี้เพื่อประโยชน์หรือไม่หรือเป็นเพียงความอยากรู้อยากเห็นในอดีต

3
มีเอ็นจิ้นฐานข้อมูลใดที่จะไม่เหมาะสมกับเงื่อนไขการเข้าร่วมตามคีย์ต่างประเทศที่มีอยู่
มันแปลกสำหรับฉันที่เมื่อฉันกำหนดคีย์ต่างประเทศแล้วเอ็นจินไม่สามารถใช้ข้อมูลนี้เพื่อค้นหานิพจน์ JOIN ที่ถูกต้องโดยอัตโนมัติ แต่ต้องการให้ฉันพิมพ์ประโยคเดิมซ้ำอีกครั้ง มีฐานข้อมูลใดบ้างหรืออาจเป็นโครงการวิจัยบางประเภทที่จะตรวจสอบคีย์ต่างประเทศที่มีอยู่

4
ตรวจสอบการเข้าสู่ระบบในฐานข้อมูล MySQL
มีวิธีตรวจสอบการเข้าสู่ระบบ MySQL หรือไม่ ฉันต้องการที่จะสามารถสร้างชื่อผู้ใช้สำหรับพนักงานแต่ละคนและดังนั้นจึงสร้างเส้นทางการตรวจสอบของการเข้าสู่ระบบ อย่างไรก็ตาม googling กลับไม่ได้ผลลัพธ์ที่ดี ยิ่งเราตรวจสอบได้มากเท่าไหร่ก็ยิ่งดีเท่านั้น อย่างน้อยที่สุดมันก็ดีที่รู้ว่าใครเข้าระบบเมื่อ มันจะดียิ่งขึ้นถ้าดูว่าใครดำเนินการสืบค้นเมื่อใด บันทึกส่วนใหญ่จะมีการบอกลูกค้าว่าเรามีพวกเขาเนื่องจากมีข้อมูลที่อาจอ่อนไหวในฐานข้อมูล เห็นได้ชัดว่าความสามารถในการตรวจสอบแบบสอบถามที่ดำเนินการโดยผู้ใช้แต่ละคน (และเมื่อ) จะทำให้เราสามารถระบุได้ดีขึ้นว่าใครเป็นสาเหตุของปัญหาด้านความปลอดภัยหากควรเกิดขึ้น

2
ลำดับทางชีวภาพของ UniProt ใน PostgreSQL
วิธีที่ดีที่สุดในการจัดเก็บลำดับทางชีวภาพของ UniProt ใน PostreSQL คืออะไร รายละเอียดข้อมูล เราดึงลำดับ 12 ล้านจากUniProt - จำนวนนี้น่าจะเพิ่มเป็นสองเท่าทุก 3-10 เดือน ความยาวของลำดับสามารถเปลี่ยนแปลงได้ตั้งแต่ 10 ถึง 50 พันล้านตัวอักษร น้อยกว่า 1% ของลำดับนั้นยาวกว่า 10,000 ตัวอักษร มันจะปรับปรุงประสิทธิภาพในการจัดเก็บลำดับที่ยาวกว่าแยกกันหรือไม่ ลำดับสามารถเป็นได้ทั้งโปรตีนหรือตัวอักษรดีเอ็นเอ ตัวอักษร DNA มี 5 ตัวอักษร (A, T, C, G หรือ -) ตัวอักษรโปรตีนจะมีประมาณ 30 ตัวอักษร เราไม่รังเกียจที่จะเก็บลำดับของตัวอักษรสองตัวที่แตกต่างกันในคอลัมน์ที่แตกต่างกันหรือแม้แต่ตารางที่แตกต่างกัน จะช่วยได้ไหม รายละเอียดการเข้าถึงข้อมูล เพื่อตอบความคิดเห็นของ Jeremiah Peschka: ลำดับโปรตีนและ DNA จะเข้าถึงได้ในเวลาที่ต่างกัน ไม่จำเป็นต้องค้นหาภายในลำดับ (ที่ทำนอกฐานข้อมูล) …
11 postgresql 

8
MySQL - วิธีตรวจสอบค่าในคอลัมน์ทั้งหมด
ฉันอยากรู้อยากเห็นมีวิธีที่ดีในการค้นหาคอลัมน์ทั้งหมดสำหรับค่าที่กำหนดหรือไม่ สำหรับจุดประสงค์ของฉันมันไม่จำเป็นต้องรวดเร็วเลยมันเป็นเพียงแค่จุดเดียว 1 จุดและฉันไม่ต้องการพิมพ์ชื่อเขตทุกชื่อ นั่นคือสิ่งที่ฉันจะทำตอนนี้ แต่ฉันคิดว่าแน่นอนว่ามีวิธีที่ดีกว่า ฉันต้องการที่จะเปิดนี้: SELECT * FROM table WHERE col1 = 'val' OR col2 = 'val' OR col3 = 'val'; เป็นนี้ SELECT * FROM table WHERE * = 'val' ... หรือดีกว่า (แม้ว่าฉันจะสงสัยอย่างจริงจัง ... ) SELECT * FROM table WHERE * like '%val%' ฉันพบสิ่งนี้ซึ่งดูเหมือนจะไม่ค่อยดี แต่ฉันไม่พบอะไรที่ใกล้เคียงกว่านี้: SELECT whatever WHERE …
11 mysql 

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