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

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


5
เหตุใดฐานข้อมูล DROP จึงใช้เวลานานมาก (MySQL)
ใหม่การติดตั้ง CentOS ฉันกำลังเรียกใช้การนำเข้าฐานข้อมูลขนาดใหญ่ (ไฟล์ 2GB sql) และมีปัญหา ไคลเอ็นต์ SSH ดูเหมือนจะสูญเสียการเชื่อมต่อและการนำเข้าดูเหมือนจะหยุดชะงัก ฉันใช้หน้าต่างอื่นเพื่อเข้าสู่ mysql และการนำเข้าดูเหมือนจะตายติดอยู่ในตารางแถว 3M โดยเฉพาะ ดังนั้นฉันจึงพยายาม DROP DATABASE huge_db; 15-20 นาทีต่อมาไม่มีอะไร ในหน้าต่างอื่นฉันทำ: /etc/init.d/mysqld restart หน้าต่าง DROP DB ส่งข้อความ: SERVER SHUTDOWN จากนั้นฉันก็รีสตาร์ทฟิสิคัลเซิร์ฟเวอร์ กลับเข้าสู่ mysql ตรวจสอบและ db ยังคงมีอยู่วิ่ง DROP DATABASE huge_db; อีกครั้งและอีกครั้งฉันรอประมาณ 5 นาที เป็นการติดตั้งใหม่อีกครั้ง huge_dbเป็นฐานข้อมูลเท่านั้น (นอกเหนือจากดีบีเอสระบบ) ฉันสาบานว่าฉันทิ้ง db ของขนาดใหญ่นี้มาก่อนและอย่างรวดเร็ว แต่บางทีฉันผิด ฉันทำฐานข้อมูลสำเร็จแล้ว …
46 mysql  mysqldump 

3
ลบข้อกำหนดรหัสผ่านสำหรับผู้ใช้ postgres
ฉันเข้าใจว่าเมื่อติดตั้งแล้ว PostgreSQL ไม่มีรหัสผ่านสำหรับผู้ใช้รูท db (postgres): postgres=# select usename, passwd is null from pg_shadow; usename | ?column? ----------+---------- postgres | t (1 row) ... และควรตั้งด้วย: alter role postgres password '<<very-secret>>'; (แล้วอัปเดตpg_hba.confไฟล์ตาม) คำถามของฉันคือสิ่งที่เป็น SQL postgresเพื่อใช้ในการกลับไปสู่สถานการณ์ก่อนหน้านี้เมื่อรหัสผ่านไม่ถูกต้องสำหรับผู้ใช้ โดยทั่วไปฉันจะลบข้อกำหนดรหัสผ่านสำหรับบทบาทใด ๆ ได้อย่างไร ฉันไม่ได้ถามวิธีเปลี่ยนรหัสผ่าน แต่ต้องการลบข้อกำหนดรหัสผ่าน ( passwdคอลัมน์ว่างในตารางpg_shadow)

4
คำสั่ง SQL Server เพื่อล้างแคชก่อนเรียกใช้การเปรียบเทียบประสิทธิภาพ
เมื่อเปรียบเทียบเวลาดำเนินการของแบบสอบถามที่แตกต่างกันสองรายการสิ่งสำคัญคือการล้างแคชเพื่อให้แน่ใจว่าการดำเนินการของแบบสอบถามแรกไม่ได้เปลี่ยนประสิทธิภาพของแบบสอบถามที่สอง ในการค้นหาโดย Google ฉันสามารถค้นหาคำสั่งเหล่านี้ได้: DBCC FREESYSTEMCACHE DBCC FREESESSIONCACHE DBCC FREEPROCCACHE อันที่จริงแล้วข้อความค้นหาของฉันใช้เวลาในการดำเนินการหลายครั้งกว่าจริงกว่าเดิม อย่างไรก็ตามฉันไม่แน่ใจว่านี่เป็นเทคนิคที่แนะนำ วิธีปฏิบัติที่ดีที่สุดคืออะไร

4
ฟังก์ชั่นประสิทธิภาพ
มาจากพื้นหลังของ MySQL ที่ประสิทธิภาพของขั้นตอนการจัดเก็บ(บทความเก่า)และการใช้งานเป็นที่น่าสงสัยฉันกำลังประเมิน PostgreSQL สำหรับผลิตภัณฑ์ใหม่สำหรับ บริษัท ของฉัน หนึ่งในสิ่งที่ฉันอยากทำคือย้ายบางส่วนของตรรกะแอปพลิเคชันลงในกระบวนงานที่เก็บไว้ดังนั้นฉันจึงขอ DOs และ DON'Ts (แนวทางปฏิบัติที่ดีที่สุด) เกี่ยวกับการใช้ฟังก์ชันใน PostgreSQL (9.0) โดยเฉพาะเกี่ยวกับประสิทธิภาพการทำงานผิดพลาด

3
การอนุญาตหน่วยความจำเรียงมากเกินไป
เหตุใดแบบสอบถามแบบง่ายนี้จึงได้รับหน่วยความจำมากมาย -- Demo table CREATE TABLE dbo.Test ( TID integer IDENTITY NOT NULL, FilterMe integer NOT NULL, SortMe integer NOT NULL, Unused nvarchar(max) NULL, CONSTRAINT PK_dbo_Test_TID PRIMARY KEY CLUSTERED (TID) ); GO -- 100,000 example rows INSERT dbo.Test WITH (TABLOCKX) (FilterMe, SortMe) SELECT TOP (100 * 1000) CHECKSUM(NEWID()) % 1000, …

1
คำย่อที่ใช้ทั่วไปโดยผู้ดูแลระบบฐานข้อมูล
คำย่อที่ใช้บ่อยที่สุดในหมู่ผู้ดูแลระบบฐานข้อมูลคืออะไรและมีความหมายที่สัมพันธ์กันอย่างไร สำหรับชุมชนและผู้ที่ค้นหาความหมายของคำศัพท์และตัวย่อที่ใช้กันทั่วไปเมื่อทำงานกับฐานข้อมูล ฯลฯ


6
ความหมายของประสิทธิภาพของขนาด MySQL VARCHAR
มีความแตกต่างของประสิทธิภาพใน MySQL ระหว่างขนาด varchar หรือไม่ ยกตัวอย่างเช่นและvarchar(25) varchar(64000)ถ้าไม่มีมีเหตุผลที่จะไม่ประกาศ varchars ทั้งหมดที่มีขนาดสูงสุดเพียงเพื่อให้แน่ใจว่าคุณไม่ได้ออกจากห้อง?

2
ความแตกต่างระหว่าง now () และ current_timestamp
ใน PostgreSQL ฉันใช้now()และcurrent_timestampฟังก์ชั่นและฉันไม่เห็นความแตกต่าง: # SELECT now(), current_timestamp; now | now --------------------------------+-------------------------------- 04/20/2014 19:44:27.215557 EDT | 04/20/2014 19:44:27.215557 EDT (1 row) ฉันพลาดอะไรไปรึเปล่า?

1
วิธีการทำให้การสำรองและทดสอบ PostgreSQL DB ทำงานและเสร็จสมบูรณ์
ฉันหวังว่าฉันจะได้รับคำตอบที่ชัดเจนเกี่ยวกับวิธีการสำรองข้อมูลแบบเต็มของ Postgres เหมือนกับที่คุณใช้กับ MS SQL Server จากนั้นดูแลผู้ใช้ที่ไม่ได้ใช้งาน จากสิ่งที่ฉันได้อ่านและอาจผิดการค้นหาบล็อก PostgreSQL ที่ดีนั้นท้าทายมากดังนั้นโปรดแนะนำฉันให้ฉันฉันต้องหาวิธีที่แอพนี้ทำงานได้ดังนั้นฉันจึงสามารถไว้วางใจในการสำรองและ Slony ของฉัน การทำซ้ำ ฉันมีนักพัฒนากู้คืนการสำรองข้อมูลที่ฉันใช้จาก PgadminIII ผ่านcustom,, directoryและการจัดtarรูปแบบขณะที่เลือกOIDs แต่เขาบอกว่าสองคนไม่โหลด, tarทำ แต่มันเป็นเพียงไดเรกทอรีเท่านั้นไม่ใช่ข้อมูล ตอนนี้ฉันสับสนจริงๆ ฉันกำลังใช้ PGAdminIII มีตัวเลือกpg_dumpและ pg_dumpallฉันต้องการสำรองข้อมูลทุกอย่างที่ฉันต้องการเพื่อทดสอบคืนค่าฐานข้อมูลนี้ที่ใดที่หนึ่งและตรวจสอบว่าใช่ข้อมูลทั้งหมดที่เราต้องการและการสำรองข้อมูลของเรานั้นดี ในที่สุดฉันต้องการเขียนสคริปต์คืนค่าอัตโนมัติ แต่วันละครั้ง pg_dumpallเห็นได้ชัดว่ามี-globalsตัวเลือกที่ควรสำรองข้อมูลทุกอย่าง แต่ความช่วยเหลือในการpg_dumpallแสดง-g, --globals-only dump only global objects, no databasesไม่ใช่--globalsตัวเลือก ฉันคิดว่าpg_dumpallอย่างน้อยก็จะต้องทำการสำรองกุญแจต่างประเทศ แต่ถึงอย่างนั้นก็ดูเหมือนจะเป็น 'ตัวเลือก' ตามเอกสารประกอบแม้ว่าpg_dumpallฉันจะต้องใช้-oตัวเลือกในการสำรองคีย์ต่างประเทศฉันไม่สามารถจินตนาการได้เลยว่าเมื่อใดที่ฉันไม่ต้องการสำรองคีย์ต่างประเทศ ฉันจะดูแลผู้ใช้ที่กำพร้าและตรวจสอบว่าฉันมีทุกอย่างได้อย่างไร ฉันต้องการกู้คืนไฟล์สำรองของฉันจริงบนเซิร์ฟเวอร์อื่นและตรวจสอบทุกอย่างทำงาน หากใครมีข้อเสนอแนะเกี่ยวกับวิธีการสำรองข้อมูลจริงใน PostgreSQL และคืนค่าฉันจะขอบคุณมาก ฉันมีเซิร์ฟเวอร์ PostgreSQL แต่ฉันก็ยังไม่เข้าใจว่าทำไมแอปจะไม่ทำการสำรองข้อมูลOIDโดยค่าเริ่มต้น! ดูเหมือนว่า 99.9% …

3
ความแตกต่างระหว่าง On Delete Cascade และ On Cascade Update ใน mysql
ฉันมีสองตารางใน MySQL database- ,parent childฉันกำลังพยายามเพิ่มการอ้างอิงคีย์ต่างประเทศในตารางลูกของฉันตามตารางหลัก มีความแตกต่างที่สำคัญระหว่างON UPDATE CASCADEและON DELETE CASCADE ตารางผู้ปกครองของฉัน CREATE TABLE parent ( id INT NOT NULL, PRIMARY KEY (id) ) ENGINE=INNODB; คำถามของฉันคืออะไรความแตกต่างระหว่างการค้นหา sql ต่อไปนี้คืออะไร ON DELETE CASCADE CREATE TABLE child ( id INT, parent_id INT, INDEX par_ind (parent_id), FOREIGN KEY (parent_id) REFERENCES parent(id) ON DELETE CASCADE ) …

5
ฉันไม่สามารถเชื่อมต่อกับฐานข้อมูล SQL เซิร์ฟเวอร์ของฉันผ่านที่อยู่ IP
ฉันติดตั้งเซิร์ฟเวอร์ที่รัน Windows Server 2008 และติดตั้ง SQL Server 2008 Express แล้ว ฉันสามารถเชื่อมต่อกับฐานข้อมูล SQL Server Express MACHINENAME/SQLEXPRESSของเครื่องผ่านทาง อย่างไรก็ตามเมื่อเราเชื่อมต่อผ่านซอฟต์แวร์หรือสคริปต์โดยใช้ที่อยู่ IPจะไม่อนุญาตการเชื่อมต่อ ฉันเหนื่อย: ปิดไฟร์วอลล์ อนุญาตการเชื่อมต่อระยะไกลสำหรับฐานข้อมูล SQL การเปิดใช้งาน TCP / IP ภายในการกำหนดค่า SQL เมื่อเราพยายามเชื่อมต่อผ่านซอฟต์แวร์ 'SQL Server Management Studio' เราจะได้รับข้อความต่อไปนี้: ข้อความผิดพลาด: เกิดข้อผิดพลาดขณะสร้างการเชื่อมต่อกับเซิร์ฟเวอร์ เมื่อเชื่อมต่อกับ SQL Server 2005 ความล้มเหลวนี้อาจเกิดจากข้อเท็จจริงที่ว่าภายใต้การตั้งค่าเริ่มต้น SQL Server ไม่อนุญาตการเชื่อมต่อระยะไกล (ผู้ให้บริการ: ผู้ให้บริการ TCP ข้อผิดพลาด: 0 - ไม่สามารถทำการเชื่อมต่อได้เนื่องจากเครื่องเป้าหมายปฏิเสธอย่างแข็งขัน) …

4
ฉันสามารถติดตั้ง Studio จัดการเซิร์ฟเวอร์ SQL ในเครื่องได้หรือไม่
ฉันสามารถติดตั้ง Studio จัดการเซิร์ฟเวอร์ SQL บนเดสก์ท็อปของฉันเพื่อเข้าถึงฐานข้อมูลบนอินสแตนซ์ SQL Server 2012 ได้หรือไม่ ถ้าเป็นเช่นนั้นฉันจะหาตัวติดตั้งได้ที่ไหน Google ค้นหาเฉพาะคืนค่า 'ด่วน' ในขณะที่ฉันกำลังค้นหา Studio จัดการเซิร์ฟเวอร์ SQL แบบเต็ม

5
คำสั่ง SQL Server CASE ประเมินเงื่อนไขทั้งหมดหรือออกจากเงื่อนไขแรกของ TRUE หรือไม่
คำสั่ง SQL Server (2008 หรือ 2012 โดยเฉพาะ) CASEประเมินWHENเงื่อนไขทั้งหมดหรือไม่หรือออกเมื่อพบWHENประโยคที่ประเมินว่าเป็นจริงหรือไม่? หากผ่านเงื่อนไขทั้งชุดนั่นหมายความว่าเงื่อนไขสุดท้ายที่ประเมินเป็นจริงจะเขียนทับเงื่อนไขแรกที่ประเมินว่าเป็นจริงหรือไม่ ตัวอย่างเช่น: SELECT CASE WHEN 1+1 = 2 THEN'YES' WHEN 1+1 = 3 THEN 'NO' WHEN 1+1 = 2 THEN 'NO' END ผลลัพธ์คือ "ใช่" แม้ว่าเงื่อนไขสุดท้ายควรประเมินเป็น "ไม่" ดูเหมือนว่ามันจะออกเมื่อพบเงื่อนไขที่แท้จริง ใครบางคนได้โปรดยืนยันถ้าเป็นกรณีนี้
44 sql-server  t-sql  case 

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