คุณสัมภาษณ์ผู้สมัคร Database Programmer / Admin อย่างไร


12

ในระหว่างการสัมภาษณ์ฉันถามคำถามการออกแบบฐานข้อมูลพื้นฐาน การทำให้เป็นมาตรฐาน (เมื่อ - ทำไม) เป็นหนึ่งในข้อกังวลของฉันเมื่อพูดถึงการออกแบบฐานข้อมูล บางสถานการณ์ I ไซต์ที่เกี่ยวข้องกับเซิร์ฟเวอร์ที่ซิงโครไนซ์และสิ่งที่พวกเขาคำนึงถึงประเด็นที่เกี่ยวข้อง ปัญหาด้านความปลอดภัยและอื่น ๆ

  1. คุณจะถามพวกเขาจากบริบทของระบบฐานข้อมูลเฉพาะ (เช่น Oracle) ที่พวกเขาต้องการหรือไม่
  2. คำถามทางเทคนิคประเภทไหนที่คุณจะถามพวกเขา
  3. ไซต์ใดที่คุณต้องการให้สถานการณ์และสิ่งที่คุณต้องการเป็นคำตอบสำหรับสถานการณ์เหล่านั้น
  4. คุณจะรู้ได้อย่างไรว่าพวกเขามีความรู้ในการจัดการปัญหาด้านความปลอดภัยหรือไม่
  5. คำถามอื่น ๆ ที่เกี่ยวข้อง (เช่นการคืนค่าฐานข้อมูล / การสำรองข้อมูล)

ขอบคุณ.

คำตอบ:


15

นี่คือคำถามสัมภาษณ์ 10 อันดับแรกของฉันสำหรับผู้ดูแลระบบฐานข้อมูลระดับสูงและคำถามยอดฮิต 10 อันดับแรกของTom LaRock สำหรับ DBAs

ฉันสังเกตเห็นคนอื่น ๆ แนะนำว่าผู้สมัครควรแก้ไขปัญหาเซิร์ฟเวอร์ หากคุณใช้วิธีการดังกล่าวให้ใช้เครื่องเสมือนพร้อมภาพรวม ตั้งค่าเซิร์ฟเวอร์ด้วยวิธีเฉพาะที่มีปัญหาการกำหนดค่าหรือประสิทธิภาพการทำงานถ่ายภาพจากนั้นหลังจากการสัมภาษณ์ทุกครั้งคุณสามารถย้อนกลับไปที่ภาพรวมได้

หากคุณทำเช่นนั้นให้ จำกัด งานกับประเภทของงานที่คุณต้องทำ อย่าถาม DBA ที่ใช้งานจริงเกี่ยวกับการทำให้เป็นมาตรฐานและไม่ต้องถาม DBA สำหรับการพัฒนาว่าทำไมโหนดหนึ่งจึงไม่เข้าร่วมคลัสเตอร์

งานการผลิต DBA อาจเป็น:

  • ตั้งค่างานสำหรับการสำรองข้อมูลการบำรุงรักษาดัชนีและ DBCCs ดูว่าพวกเขาถามคุณว่าคุณต้องการสำรองฐานข้อมูลบ่อยแค่ไหนและถ้าคุณต้องการสำรองข้อมูลในเครื่องหรือในเครือข่าย อย่าถามพวกเขาถึงวิธีการกำหนดค่าซอฟต์แวร์สำรองข้อมูลเทปเฉพาะเว้นแต่ว่าจะอยู่ในประวัติย่อของพวกเขา
  • ค้นหาว่าทำไมจอห์นนี่ไม่สามารถเข้าสู่ระบบและเรียกใช้แบบสอบถามของเขา
  • มีคนบ่นแบบสอบถามที่ช้า แสดงให้ฉันดูว่าคุณต้องการค้นหาว่าเกิดอะไรขึ้น จากนั้นพูดว่าพวกเขาเรียกและตอบแบบสอบถามเสร็จ แต่ต้องการให้แน่ใจว่าจะไม่เกิดขึ้นอีก
  • กู้คืนตารางเดียวจากการสำรองข้อมูลเมื่อคืนที่ผ่านมา

งานพัฒนาอาจเป็น:

  • ดีบักโพรซีเดอร์ที่เก็บไว้นี้
  • ตีความแผนการดำเนินการนี้
  • สร้างมุมมองเพื่อเข้าร่วมลูกค้ากับใบแจ้งหนี้

ใช้สคีมา AdventureWorks พวกเขาไม่ได้เล่นกับมันเมื่อเร็ว ๆ นี้ แต่อย่างน้อยก็ง่ายที่จะอธิบาย


3
จริงๆ? รายการคำถาม DBA รุ่นน้องนั้นไร้สาระ นี่คือคำถามที่ฉันจะได้รับคำตอบที่ถูกต้องจากนักพัฒนาหลังจากเทอมแรกในวิทยาลัย ฉันชอบคำถาม Sr. DBA มากขึ้นยกเว้น "ฉันเป็นนักพัฒนาอธิบายว่าทำไมฉันต้องใช้คีย์เฉพาะบนโต๊ะของฉัน" ฉันเดาว่าเป็นเพราะฉันต้องการเชื่อว่านักพัฒนาซอฟต์แวร์รู้แล้ว ฉันพัฒนาและไม่ทราบว่าใด ๆ ที่ไม่สามารถใช้อย่างน้อยมีบทบาทจูเนียร์ DBA: o
Gromer

5
คุณจะประหลาดใจ ฉันได้สัมภาษณ์ผู้สมัคร DBA หลายสิบคนสำหรับงานหกร่างที่ไม่มีคำตอบสำหรับคำถามของทอม
Brent Ozar

2
เหมือนกันกับสิ่งที่เบรนต์พูด หลังจากทำการสัมภาษณ์จำนวนมากฉันมีผู้สมัครจำนวนไม่มากที่ไม่สามารถตอบคำถาม DBA รุ่นใหม่ได้แม้ว่าจะมีประวัติการทำงานที่กล่าวว่าพวกเขามี Oracle 10 ปีและ SQL Server 5 ปีและ OCP และ MCDBA รับรอง
K. Brian Kelley

3
ฉันยังได้รับการหัวเราะออกมาจากคำพูดของ Gromer เกี่ยวกับการต้องการเชื่อว่านักพัฒนารู้ว่าพวกเขาต้องการคีย์ที่ไม่ซ้ำกันในตารางของพวกเขา หากฉันมี $ 1 สำหรับการมีส่วนร่วมในการให้คำปรึกษาทุกครั้งที่ฉันเข้ามาและแก้ไขปัญหาด้านประสิทธิภาพเพียงแค่เพิ่มคีย์หลัก - โอ้เดี๋ยวก่อนฉันทำได้และมันก็มากกว่า $ 1 ;-)
Brent Ozar

1
จำไว้ว่าเรากำลังพูดถึงการคัดกรองนักพัฒนาที่คุณไม่ได้จ้าง แน่นอนคุณอยู่ใกล้นักพัฒนาที่ชาญฉลาด - แต่เพียงเพราะคุณไม่ได้จ้างผู้แพ้ คำถามเหล่านี้จะกรองผู้แพ้ออกไป
Brent Ozar

9

ในทีมซอฟต์แวร์ของฉันซึ่งเป็นส่วนหนึ่งของการสัมภาษณ์เราทดสอบความเข้าใจฐานข้อมูล

เรานำเสนอ - การออกแบบที่แย่มาก (คิดว่าแอปพลิเคชันประเภท CRM) และขอให้พวกเขาปรับปรุงการออกแบบหลังจากนั้นใช้เวลาคิดประมาณ 30 นาที

จากนั้นเราจะถามคำถามเพิ่มเติมตามสิ่งที่พวกเขาพูดถึง

เรากำลังตรวจสอบเพื่อความเข้าใจ

  • Normalistion V ประสิทธิภาพ
  • การออกแบบที่สำคัญและความสมบูรณ์ของการอ้างอิง
  • สถานที่สำหรับกลอนสด - โครงสร้างฐานข้อมูลทางเลือก - ทริกเกอร์, ดู, กระบวนการ
  • พื้นที่ที่อ่อนแอในการออกแบบ - วิธีเอาชนะความสัมพันธ์หลายต่อหลายอย่าง
  • สิ่งนี้มีผลต่อเซิร์ฟเวอร์ - maintaince อย่างไร
  • ปัญหาความปลอดภัยของข้อมูล
  • ปัญหาความปลอดภัยของแอปพลิเคชัน

เราในฐานะทีมได้คิดเกี่ยวกับสิ่งที่เราคิดว่าเป็นประเภทจูเนียร์ / อาวุโส / สถาปนิกตอบคำถามประเภทนี้

ดังนั้นสำหรับ - ประสิทธิภาพ v การประเมินผล -

จะเห็นปัญหาในตอนแรกและสามารถพูดคุยว่าทำไม (จูเนียร์)

จะแนะนำ 4/5 NF แต่เข้าใจปัญหาเกี่ยวกับประสิทธิภาพการทำงานที่พวกเขาจะทำให้ปกติและเข้าใจวิธีการจัดการปัญหา (อาวุโส)

พวกเขาจะแนะนำการออกแบบประเภทต่าง ๆ เช่น Star Schema หรือไม่และหารือเกี่ยวกับผลกระทบในหลาย ๆ ระดับ (สถาปนิก)

  • การออกแบบที่สำคัญและความสมบูรณ์ของการอ้างอิง

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

จะหารือเกี่ยวกับปัญหาเกี่ยวกับปริมาณข้อมูลและชนิดข้อมูล v ค้นหาคีย์ธรรมชาติในข้อมูลและจะสามารถพูดคุยว่าทำไมพวกเขาถึงมองสิ่งเหล่านี้ - และปัญหาที่ตามมาด้วย Referential Integrity (Senior)

สามารถโต้แย้งมุมมองที่หลากหลายเกี่ยวกับ Keys และ Integrity และสามารถสร้างโมเดลจริง ๆ เพื่อการออกแบบที่รวดเร็ว (Architect)

คุณได้รับรูปภาพ

หากคุณต้องการให้ฉันเพิ่มมากขึ้นโพสต์ความคิดเห็นและจะให้รายละเอียดสิ่งที่เราคิดเกี่ยวกับส่วนที่เหลือ แต่เพียงรวมสองคนแรกเพื่อให้คุณมีความคิดเกี่ยวกับสิ่งที่เราคิด

ประเด็นคือการคิดถึงคำถาม 1. ข้อ 2. เราในฐานะทีมได้คิดเกี่ยวกับสิ่งที่เราคิดว่าเป็นประเภทจูเนียร์ / อาวุโส / สถาปนิกตอบคำถามประเภทนี้

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


5

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


1

ดูสมาร์ทและทำสิ่งต่าง ๆ ให้สำเร็จ

... และถามพวกเขาว่าหนังสือที่พวกเขาอ่านเมื่อเร็ว ๆ นี้บล็อกใดที่พวกเขาอ่านและพอดคาสต์ที่พวกเขาฟัง และถามว่าพวกเขามีส่วนร่วมใน stackoverflow.com และ serverfault.com ;-) หรือไม่


1
และทำการตรวจสอบประวัติอาชญากรด้วยหากพวกเขากำลังจะจัดการกับข้อมูลที่ละเอียดอ่อน คุณไม่ต้องการใครสักคนที่เป็นสมาร์ทได้รับสิ่งที่ทำและเป็นความชั่วร้าย ;-)
คริสดับเบิลยูเรีย

1
ดูโพสต์บล็อกของ Steve Yegge เกี่ยวกับหนังสือJoels
Nick Kavadias

ขอบคุณ - โพสต์ของ Yegge สนุกและกระตุ้นความคิด ฉันชอบสิ่งนี้เป็นพิเศษ: "คุณต้องการใครสักคนที่เป็นเทพเจ้าที่ไร้มนุษยธรรมใครบางคนที่สามารถสอนสิ่งต่าง ๆ ให้กับคุณได้บางคนที่คุณชื่นชมและหวังว่าคุณจะเลียนแบบไม่ใช่คนที่คุณคิดว่าจะชื่นชมและเลียนแบบคุณ"
Chris W. Rea

1

ไม่จำเป็นต้องเกี่ยวข้องกับฐานข้อมูล แต่สิ่งที่ฉันต้องการเพิ่มในการสัมภาษณ์คือการแก้ไขปัญหาและสถานการณ์การออกแบบ

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

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

ตัวอย่างที่ฉันใช้ที่นี่สำหรับระบบและผู้ใช้เครือข่ายของฉันคือการอธิบายการออกแบบของพวกเขาสำหรับสำนักงานสาขาขนาดเล็กที่ตั้งค่าเนื่องจากข้อ จำกัด บางอย่างของธุรกิจของเรา ในด้าน DBA อาจใช้แอปพลิเคชัน CRUD ขนาดเล็ก / ชัดเจน ในทั้งสองกรณีคุณไม่ได้มองหาการออกแบบอย่างละเอียด แต่มีภาพรวมมากกว่าและดูว่าผู้สมัครนั้นมองหาปัญหาทั่วไปที่เกิดขึ้นหรือไม่

จุดสำคัญสำหรับสถานการณ์ทั้งสองนี้คือการเปิดการอภิปรายในหัวข้อและให้ผู้สมัครนำการอภิปรายด้วยคำถามของตนเอง ควรชัดเจนว่าคุณไม่ได้ขอคำตอบที่ถูกต้องเช่นกัน

ในขณะที่คุณสามารถถ่ายภาพได้ฉันไม่ชอบเรื่องไม่สำคัญอย่างยิ่งในการสัมภาษณ์และฉันคิดว่าสิ่งนี้ทำให้ฉันมีความเข้าใจที่ลึกซึ้งยิ่งขึ้นเกี่ยวกับความสามารถของผู้สมัคร


0

ให้เขา / เธอคุยกัน ถามเกี่ยวกับประสบการณ์ที่ผ่านมาถามว่าเขาพบปัญหา [s] และวิธีจัดการกับพัสดุ อะไรคือแรงจูงใจในการเลือกสิ่งนี้หรือเพื่อแก้ปัญหาที่พบบ่อย [สำรองข้อมูล? การตรวจสอบ? ปรับขนาดขยายขนาดความปลอดภัย]

ฉันคิดว่าคุณสามารถบอกคนจำนวนมากเกี่ยวกับบุคคลโดยเพียงแค่ฟัง

แน่นอนถ้าคุณกำลังมองหาผู้เชี่ยวชาญเฉพาะด้านในพื้นที่นั้นให้ถามคำถามโดยละเอียด - คำแนะนำจาก Stefan Thyberg นั้นดีมาก

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