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

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

2
ฉันควรเพิ่มการบีบอัดระดับหน้าก่อนเพิ่มคีย์หลักหรือหลังจาก?
สถานการณ์ คลังข้อมูลบน SQL Server 2008 Enterprise ฮีปของแถว 36+ ล้านแถว (ไม่ต้องถาม) พร้อมคอลัมน์มากกว่า 60 คอลัมน์ เพิ่มขึ้น 750k ต่อเดือน ไม่ได้กำหนดคีย์หลัก (ตอนนี้ฉันระบุแล้ว) ไม่มีการบีบอัด สิ่งที่ฉันกำลังคิดที่จะทำ (ตามลำดับนี้) เพิ่มการบีบอัดระดับหน้า เพิ่ม PK เพิ่มดัชนีที่ไม่ทำคลัสเตอร์จำนวนหนึ่ง ทำสิ่งนี้ให้เร็วที่สุด คำถาม ท้ายที่สุด: ฉันจะเพิ่มการบีบอัด PK หรือหน้าก่อนหรือไม่ (มันสำคัญไหม) ถ้าฉันเพิ่มการบีบอัดก่อนลงในตารางดัชนีใด ๆ จะสืบทอดการตั้งค่าการบีบอัดระดับตารางหรือไม่ คำตอบสำหรับคำถามนี้คือ "ไม่บีบอัดไม่ได้รับมรดก" พบได้ที่นี่ใน dba.stackexchange สิ่งที่ฉันกำลังโน้มตัวไปข้างหน้าในขณะนี้ -- Add page level compression alter table dbo.TableName rebuild with …

2
แบบสอบถามแบบเลือกอย่างง่ายได้รับการล็อกหรือไม่
ฉันใหม่มากกับ SQL Server และต้องการที่จะเข้าใจว่าต่อไปนี้selectคำสั่งที่ง่ายมากที่จะล็อคใด ๆ Select * from Student; โปรดพิจารณากรณีที่คำสั่งจะไม่ทำงานภายในbegin tranบล็อก

3
วิธีแทรกในตารางที่มีเฉพาะคอลัมน์ตัวตนได้อย่างไร
เมื่อกำหนดตารางที่มีเพียงคอลัมน์ IDENTITY คุณจะแทรกแถวใหม่ได้อย่างไร ฉันได้ลองทำสิ่งต่อไปนี้แล้ว: INSERT INTO TABLE (Syntax error) INSERT INTO TABLE VALUES() (Syntax error) INSERT INTO TABLE (Id) VALUES() (Syntax error) ฉันกำลังทดสอบบางอย่างและต้องการเพียงคอลัมน์ตัวตน ไม่ใช่เพื่อการผลิต มิฉะนั้นตารางดังกล่าวสามารถใช้เป็นเครื่องกำเนิดไฟฟ้าตามลำดับที่ไม่จำเป็นต้องมีคอลัมน์อื่น ๆ

2
ทำไม CTE ควรเริ่มต้นด้วยเซมิโคลอน
ฉันแค่ดูโพสต์ในStackOverflowที่ Aaron Bertrand เสนอให้ใช้ CTE แทนตารางตัวเลขซึ่งเป็นวิธีที่ยอดเยี่ยมในการปฏิบัติงานในมือ คำถามของฉันคือทำไมบรรทัดแรกของ CTE เริ่มต้นด้วยเซมิโคลอน ;WITH n AS (SELECT TOP (10000) n FROM (SELECT n = ROW_NUMBER() OVER (ORDER BY s1.[object_id]) FROM sys.all_objects AS s1 CROSS JOIN sys.all_objects AS s2 ) AS x ORDER BY n ) SELECT n FROM n ORDER BY n; -- look …
14 sql-server  t-sql  cte  syntax 

2
เขียนคิวรีช้าเพื่อทดสอบการบันทึกคิวรีช้า
มีแบบสอบถามง่ายๆที่จะใช้เวลา> 2 วินาทีเพื่อให้ฉันสามารถทดสอบ logger แบบสอบถามช้า? ฉันกำลังมองหาสิ่งที่ต้องการคำสั่งซ้ำทั่วไปหรือซ้ำแล้วซ้ำอีก
14 mysql  slow-log 

2
เอนจิ้นฐานข้อมูลคืออะไร?
ฉันได้อ่านคำจำกัดความในhttp://en.wikipedia.org/wiki/Database_engineหลายครั้ง: เอ็นจิ้นฐานข้อมูล (หรือ "หน่วยเก็บเครื่องมือ") เป็นส่วนประกอบซอฟต์แวร์พื้นฐานที่ระบบจัดการฐานข้อมูล (DBMS) ใช้เพื่อสร้างอ่านอัปเดตและลบข้อมูล (CRUD) จากฐานข้อมูล สิ่งที่ฉันไม่เข้าใจคือสิ่งที่เหลือไว้ทำไม่ CRUD ทั้งหมดที่ฐานข้อมูลจะทำอย่างไร หากเอ็นจิ้นฐานข้อมูลทำหน้าที่เหล่านี้ส่วนที่เหลือของฐานข้อมูลจะทำอะไร?

3
ฉันจะคืนค่าเรคคอร์ดหลายแถวใน PL / pgSQL ได้อย่างไร
ฉันกำลังพยายามส่งคืนหลายระเบียนโดยใช้ชนิดข้อมูล RECORD มีวิธีที่ฉันสามารถผนวกเข้ากับ RECORD และเพิ่ม / ผนวกค่าใหม่ด้วยการวนซ้ำแต่ละครั้งในการบันทึกนี้ นั่นคือฉันต้องการผนวกrecเพื่อที่recจะกลายเป็นชุดของแถวเมื่อวนซ้ำซึ่งฉันสามารถกลับมาที่ส่วนท้ายของฟังก์ชั่นของฉัน ขณะนี้ฉันกำลังทำสิ่งนี้ - SELECT temp_table.col1, temp_table.col2, temp_table.col3 INTO rec FROM temp_table WHERE temp_table.col3 = false; รหัสเต็มของฉันอยู่ที่นี่: CREATE OR REPLACE FUNCTION validation() RETURNS RECORD AS $$ DECLARE rec RECORD; temp_row RECORD; BEGIN CREATE TEMPORARY TABLE temp_table (col1 TEXT, col2 INTEGER, col3 BOOLEAN) ON COMMIT …

1
วิธีการเก็บจำนวนเต็มหนึ่งไบต์ใน PostgreSQL
ในเอกสาร PostgreSQL มีการกล่าวกันว่าชนิดข้อมูลจำนวนเต็มสามารถเก็บไว้ในพื้นที่สอง, สี่หรือแปดไบต์ หนึ่งในคอลัมน์ของตารางในฐานข้อมูลของฉันมีค่าจำนวนเต็มหนึ่งไบต์และฉันต้องการเก็บไว้ในประเภทข้อมูลหนึ่งไบต์ มีส่วนขยายหรือวิธีใช้ชนิดข้อมูลจำนวนเต็มหนึ่งไบต์ใน PostgreSQL หรือไม่ NUMERIC (1,0) มีกี่ไบต์

2
เคสที่มีหลายเงื่อนไข
ฉันต้องการเปลี่ยนค่าที่ส่งคืนจากคำสั่ง select ตามเงื่อนไขหลายประการ ฉันลองอะไรแบบนั้น ,CASE i.DocValue WHEN 'F2' AND c.CondCode IN ('ZPR0','ZT10','Z305') THEN c.CondVal ELSE 0 END as Value ทำไมมันไม่ทำงานและวิธีที่แนะนำให้ทำคืออะไร? จะมีหลายเงื่อนไขเมื่อถัดไป ขอขอบคุณ
14 sql-server 

2
อะไรคือสิทธิพิเศษที่สมเหตุสมผลในการให้สิทธิ์ผู้ใช้ทั่วไป? [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา ฉันพบรายการสิทธิพิเศษให้โดย MySQLจะเป็นบิตครอบงำ ฉันไม่แน่ใจว่าใครควรได้รับสิทธิพิเศษอะไรบ้าง ในใจของฉันมีผู้ใช้ทั่วไปสามคนสำหรับสถานการณ์ของฉัน: root developer application rootเป็นการอธิบายตนเอง สำหรับdeveloperผู้ใช้นี้จะต้องสามารถเข้าถึงฐานข้อมูลใด ๆ ได้อย่างง่ายดายทำการปรับเปลี่ยนเป็นต้นสำหรับผู้เริ่มฉันตั้งค่าผู้ใช้นี้เป็นชุดสิทธิ์นี้: SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, EVENT, TRIGGER ON applicationมีชุดที่ จำกัด ยิ่งขึ้น …

3
รูปแบบที่ถูกต้องของชื่อสกีมา PostgreSQL คืออะไร
ฉันไม่พบเอกสารที่อธิบายรูปแบบที่ถูกต้องของชื่อสกีมา PostgreSQL ฉันรู้ว่าชื่อสคีมาไม่สามารถ: เริ่มต้นด้วยตัวเลข มีช่องว่าง เริ่มกับ pg_ มีอะไรอีกบ้าง? ฉันควรมองที่ไหน
14 postgresql 

3
MySQL: เกิดข้อผิดพลาดในการอ่านแพ็กเก็ตการสื่อสาร
ฉันได้รับคำเตือนนี้ใน mysql [Warning] Aborted connection 21 to db: 'MyDB' user: 'MyUser' host: 'localhost' (Got an error reading communication packets) ฉันเคยผ่านหลายหัวข้อใน google และตามคำแนะนำฉันเพิ่มขึ้นmax_allowed_packetจาก128 to 512 to 1024ยังคงพฤติกรรมเดียวกัน ฉันกำลังใช้ Drupal 7 และใช่มีจำนวนมากของชนิดข้อมูลหยด แต่1024 Mbของmax_allowed_packetควรจะเพียงพอในความคิดของฉัน วิธีหลีกเลี่ยงอื่น ๆ วิธีเอาชนะคำเตือนนี้หรือไม่ แก้ไข: เพิ่มการตั้งค่าบางอย่างตามคำแนะนำ / คำตอบของ @ Rolando ฉันยังคงได้รับคำเตือนเดิม config mysql ของฉันมีลักษณะเช่นนี้: [client] port = 3306 socket …
14 mysql  innodb 

2
พฤติกรรมของ Varchar มีช่องว่างในตอนท้าย
เมื่อฉันใช้ Varchar กับช่องว่างมันจะละเว้นช่องว่างที่ท้าย อดีต: declare @X varchar(50) นี้... set @X= 'John' ... เหมือนกับ ... set @X= 'John ' มันถือว่าสิ่งเหล่านี้จะเท่ากัน ฉันจะทำให้ระบบรับรู้สิ่งเหล่านี้แตกต่างกันอย่างไร

7
ตรวจสอบว่าฐานข้อมูล Oracle เป็นอย่างไร
สำหรับแอปพลิเคชันของเราเรามีไฟล์กำหนดค่าสำหรับเชื่อมต่อกับฐานข้อมูล Oracle (URL, ชื่อผู้ใช้, รหัสผ่าน) แอปพลิเคชันใช้เวลา 2-5 นาทีในการเริ่มต้น หากมีสิ่งผิดปกติกับฐานข้อมูลฉันเห็นสิ่งนี้ในบันทึก แต่ฉันต้องรอ 2-5 นาที นี่เป็นเวลานานมาก ดังนั้นฉันต้องการค้นหาอย่างรวดเร็วและเป็นเพียงวิธีการตรวจสอบว่าฐานข้อมูลนั้นโอเคและออนไลน์ทั้งหมด คุณมีความคิดว่าฉันจะทำอย่างไร?
14 oracle 

2
การนับแถวจากแบบสอบถามย่อย
ง่าย: ฉันต้องการนับจำนวนแถวจากแบบสอบถามย่อย โปรดทราบว่าสถานะนั้นไม่ว่าโฮสต์จะออนไลน์หรือไม่ รหัสไม่ถูกต้อง SELECT COUNT(ip_address) FROM `ports` ( SELECT DISTINCT ip_address FROM `ports` WHERE status IS TRUE ) อธิบาย แบบสอบถามแรกเมื่อรันด้วยตนเองจะส่งคืนสิ่งนี้: SELECT DISTINCT ip_address FROM `ports` WHERE status IS TRUE ip_address 192.168.1.1 192.168.1.2 192.168.1.248 192.168.1.251 192.168.1.254 เคียวรีที่สองรันด้วยตนเองส่งคืนสิ่งนี้: SELECT COUNT(ip_address) FROM `ports` 17 คำถาม ฉันต้องการทราบวิธีนับรายการที่อยู่ IP 5 รายการนั้น ฉันกำลังค้นหาวิธีแก้ไขปัญหาแบบออนไลน์ที่เป็นไปได้ทางออนไลน์และเพิ่งเริ่มรู้สึกหงุดหงิดดังนั้นฉันจึงถามผู้เชี่ยวชาญ

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