หากคุณกำลังสร้างเครือข่าย Microsoft .NET และแบ็คเอนด์กำลังใช้งานฐานข้อมูล Oracle คุณควรย้ายแบ็คเอนด์ไปยัง SQL Server หัวใจสำคัญของคำถามนี้ไม่ใช่เพื่อเปรียบเทียบประสิทธิภาพของฐานข้อมูล แต่เป็นการค้นหาเครื่องมือที่ดีที่สุดสำหรับคุณ หากต้องการตอบคำถามสองข้อนี้ภายใต้สถาปัตยกรรม .NET มีเพียงคำตอบเดียวเท่านั้น นั่นคือ .NET Server ในบทความนี้ เราจะมาสำรวจกันก่อนว่าทำไมคุณถึงมีเซิร์ฟเวอร์ Oracle ในเครือข่ายของคุณ จากนั้นจึงหารือเกี่ยวกับวิธีโยกย้ายเซิร์ฟเวอร์ไปยัง SQL Server และสุดท้ายจะอธิบายข้อดีข้อเสียของการย้ายครั้งนี้
Oracle ในระบบของคุณ
หากคุณมีเซิร์ฟเวอร์ Oracle บนเครือข่ายของคุณ คุณจะต้องทราบว่าเหตุใดคุณจึงต้องการเซิร์ฟเวอร์ดังกล่าว เช่น ใครเป็นคนใช้งาน แอปพลิเคชันใดกำลังใช้งานอยู่ แอปพลิเคชันใดบ้างที่ทำงานบนเซิร์ฟเวอร์ดังกล่าว เป็นต้น
ใครใช้มันบ้าง?
ก่อนอื่นคุณควรค้นหาว่าใครกำลังใช้เซิร์ฟเวอร์ Oracle มิฉะนั้นการรีบย้ายเซิร์ฟเวอร์ก่อนที่คุณจะได้คำตอบอาจนำไปสู่ความผิดพลาดครั้งใหญ่ได้ แน่นอนว่า หากคุณต้องการทำเช่นนี้จริงๆ ก็เป็นวิธีที่รวดเร็วในการค้นหาผู้ใช้ฐานข้อมูล แต่เรายังคงแนะนำให้คุณอย่าทำ
ผู้ดูแลระบบเครือข่ายอาจมีขั้นตอนในการตรวจสอบหรือบันทึกการใช้งาน Oracle นักพัฒนาอาจต้องการใช้เซิร์ฟเวอร์ปัจจุบันเพื่อพัฒนาแอปพลิเคชัน ผู้จัดการอาจจำเป็นต้องสร้างรายงานเชิงวิเคราะห์ตามข้อมูลที่จัดเก็บไว้ในฐานข้อมูล หรือใช้แบ็กเอนด์ของ Oracle เพื่อตัดสินใจทางธุรกิจ และผู้ใช้ฐานข้อมูลอาจมีอยู่ทั่วโลก คุณต้องพิจารณาความเป็นไปได้ทั้งหมดเหล่านี้เมื่อพิจารณาว่าผู้ใช้รายใดจะได้รับผลกระทบจากกระบวนการโยกย้ายจาก Oracle ไปยัง SQL Server
จะใช้แอพพลิเคชั่นอะไร?
ตอนนี้สมมติว่าคุณถามผู้ใช้ทั้งหมดทีละคนเพื่อดูว่าใครกำลังใช้ Oracle อยู่? และคำตอบของพวกเขาคือไม่ คุณควรตรวจสอบไฟล์บันทึกเพื่อทำความเข้าใจว่าเวิร์กสเตชันใดกำลังเข้าถึงฐานข้อมูล เมื่อคุณตรวจสอบไฟล์บันทึกเหล่านี้ คุณอาจพบว่าไม่เพียงแต่เวิร์กสเตชันเท่านั้นที่เข้าถึงฐานข้อมูล แต่เซิร์ฟเวอร์อื่นๆ ก็เข้าถึงฐานข้อมูลด้วย
โอเค หยิบปากกาขึ้นมาแล้วจดเซิร์ฟเวอร์ ที่กำลังเข้าถึงฐานข้อมูล แล้วค้นหาว่า เซิร์ฟเวอร์เหล่านั้นเข้าถึงฐานข้อมูลจากแอปพลิเคชันใดโดยเฉพาะ แอปพลิเคชันดังกล่าวสามารถระบุได้โดยการเปรียบเทียบข้อมูลที่จัดเก็บไว้ในตารางข้อมูลกับแอปพลิเคชันที่ทำงานบนเซิร์ฟเวอร์
แอปพลิเคชันใดบ้างที่ทำงานบนเซิร์ฟเวอร์ Oracle
เมื่อคุณทราบผู้ใช้และแอปพลิเคชันภายนอกที่เข้าถึงฐานข้อมูลแล้ว ตอนนี้คุณจำเป็นต้องค้นหาว่าแอปพลิเคชันใดบ้างที่ทำงานบนเซิร์ฟเวอร์ฐานข้อมูล แอปพลิเคชันเหล่านี้อาจเป็นขั้นตอนการจัดเก็บฐานข้อมูล (และทริกเกอร์ที่เกี่ยวข้อง ประเภทข้อมูลที่กำหนดเอง การตั้งค่าความปลอดภัย ฯลฯ) หรืออาจเป็นแอปพลิเคชันอิสระที่ไม่ได้ทำงานภายใน Oracle คุณควรให้ความสนใจเป็นพิเศษกับเครื่องมือการพัฒนาของ Oracle ที่เพิ่มลงในเซิร์ฟเวอร์
การโยกย้ายไปยัง SQL Server
คุณไม่ควรถูกล่อลวงให้ถอดปลั๊กเซิร์ฟเวอร์ Oracle ของคุณทันทีและติดตั้ง SQL Server คุณต้องคิดให้รอบคอบก่อนที่จะย้ายเซิร์ฟเวอร์ที่สำคัญ เหตุใดกระบวนการนี้จึงมีชื่อว่าการโยกย้ายโดยเฉพาะ และไม่ใช่เพราะว่าการย้ายถิ่นไม่ได้เกิดขึ้นอย่างกะทันหันเสมอไป หากคุณทำตามขั้นตอนง่ายๆ และสมเหตุสมผล กระบวนการย้ายข้อมูลก็สามารถทำได้โดยไม่มีอุปสรรคใดๆ
หากต้องการย้ายแอปพลิเคชันไปยังแอปพลิเคชันดั้งเดิมและแอปพลิเคชันภายนอก
ให้ทำตามขั้นตอนต่อไปนี้:
1. ติดตั้ง SQL Server ใหม่ในเครือข่าย
2. สร้าง "อุปกรณ์" และตารางข้อมูลที่ใช้โดยแอปพลิเคชัน
3. ห้ามไม่ให้แอปพลิเคชันเข้าถึงฐานข้อมูลและทำให้แอปพลิเคชันออฟไลน์
4. คัดลอกข้อมูลปัจจุบันจาก Oracle ไปยัง SQL Server
5. ชี้แอปพลิเคชันทั้งหมดไปยังฐานข้อมูลใหม่
6. อนุญาตให้แอปพลิเคชันเข้าถึงข้อมูลใหม่ในตารางข้อมูลและอุปกรณ์
มีปัญหาร้ายแรงเมื่อพิจารณาการย้าย SQL
ระหว่าง SQL Server และ Oracle: พวกเขาพูดภาษา SQL สองภาษาที่แตกต่างกัน ได้แก่ SQL-PL/SQL (Oracle) และ Transact-SQL (Microsoft)
ในกรณีส่วนใหญ่ หากคุณสามารถใช้ภาษา SQL ภาษาหนึ่งได้ คุณอาจใช้ภาษา SQL อื่นได้ โดยคำนึงถึงฟังก์ชัน SQL ตัวดำเนินการ คำสั่ง ฯลฯ ฉันได้รวบรวมการอ้างอิงของโปรแกรมเมอร์ SQL เป็นพิเศษ ข้อมูลนี้แสดงคุณสมบัติที่รองรับโดย DBMS ต่างๆ แน่นอนว่าหากซัพพลายเออร์ผลิตภัณฑ์ SQL ในอเมริกาเหล่านี้ปฏิบัติตามมาตรฐาน SQL ของอเมริกา (ANSI-SQL) อย่างซื่อสัตย์ เหตุใดจึงเกิดปัญหาใหญ่เช่นนี้!
นอกจากนี้ คุณยังอาจพบปัญหาต่อไปนี้:
ตารางคู่ของ Oracle - บน SQL Server คุณอาจพบคำสั่งเช่น select 'x'; บน Oracle คำสั่งนี้จะต้องแปลงเป็น select 'x' from dual; dual เป็นตารางระบบที่สร้างโดย Oracle นอกจากปัญหาไวยากรณ์ SQL นี้แล้ว คุณไม่สามารถคัดลอกตารางนี้ไปยัง SQL Server ของคุณได้เนื่องจากเป็นตารางระบบ Oracle
การตัดทอน -- ทั้ง DBMS รองรับฟังก์ชัน FLOOR และ ROUND แต่ Oracle ยังมีฟังก์ชัน TRUNC เพิ่มเติมอีกด้วย หากระบบ Oracle ของคุณใช้ฟังก์ชัน TRUNC คุณจะต้องแก้ไขส่วนที่เกี่ยวข้องอีกครั้ง - คุณอาจต้องคิดที่จะเปลี่ยนเป็นฟังก์ชัน FLOOE หรือ ROUND
Concatenation-SQL Server 7 ไม่รองรับวิธีการเชื่อมต่อ ANSI || แต่ SQL Server 2000 รองรับ ขณะนี้ทั้งสองฐานข้อมูลใช้เครื่องหมายบวก (+) เพื่อแสดงการเชื่อมต่อ แต่จะดีกว่าถ้าใช้สัญลักษณ์นี้ในการดำเนินการทางคณิตศาสตร์!
ขึ้นอยู่กับเวอร์ชันเฉพาะของเซิร์ฟเวอร์ทั้งสองที่คุณใช้อยู่ ปัญหาการย้ายภาษา SQL มักจะปรากฏขึ้นอย่างกะทันหันและไม่คาดคิดเสมอ
กรณีทางธุรกิจสำหรับการละทิ้ง Oracle
การย้ายฐานข้อมูลนี้ไม่ใช่เกมทางอารมณ์ที่เรียบง่าย และการเลือกผลิตภัณฑ์ Microsoft เหนือ Oracle ได้รับการสนับสนุนจากกรณีทางธุรกิจ Oracle ได้ทุ่มเททรัพยากรจำนวนมากเพื่อเอาชนะ Microsoft ในการต่อสู้ในศาลและการโฆษณาชวนเชื่อ อย่างไรก็ตาม จากมุมมองทางเศรษฐกิจ Oracle ไม่ได้คุ้มต้นทุนมากกว่า นอกจากนี้ Oracle มีผลิตภัณฑ์หลักเพียงผลิตภัณฑ์เดียวเท่านั้น ซึ่งยังมีความมั่นใจน้อยกว่า Microsoft นอกจากกระบวนการขายที่ซับซ้อนแล้ว คุณควรหาบริษัทที่น่าประทับใจกว่านี้เพื่อให้การสนับสนุน บริษัทควรมีสุขภาพแข็งแรงและเจริญรุ่งเรือง และผลิตภัณฑ์ของบริษัทควรได้รับความนิยมโดยทั่วไป ควรแน่ใจว่าบริษัทจะแข็งแกร่งมากเป็นเวลาอย่างน้อยสองสามปีก่อนที่จะเผชิญหน้ากับคู่ต่อสู้ที่มีอำนาจมากขึ้น
คุณจะได้อะไรจากการย้ายไปยัง SQL Server
ขั้นแรก คุณจะได้รับระบบที่มีความสอดคล้องกับสถาปัตยกรรมเครือข่ายของคุณเป็นอย่างมาก คุณไม่จำเป็นต้องมีบุคคลเฉพาะเพื่อจัดการระบบ UNIX ของคุณ เครื่องมือการจัดการที่ปรับแต่งสำหรับ DBMS จะทำงานอย่างเหมาะสมกับเครื่องมือระบบปฏิบัติการเครือข่ายเหล่านั้น
ประการที่สอง ระบบใช้การสนับสนุนในตัวสำหรับแอปพลิเคชัน .NET สถาปัตยกรรม .NET ไม่ต้องการให้คุณใช้ SQL Server แต่เซิร์ฟเวอร์นี้เป็นฐานข้อมูลเริ่มต้น ไดรเวอร์ ODBC สำหรับ Oracle นั้นดีอย่างแน่นอน แต่มักเป็นจุดที่ล้มเหลวเสมอ
ประการที่สาม ค่าใช้จ่ายในการใช้งาน Oracle ภายใต้เครือข่าย .NET นั้นสูงกว่าการใช้ SQL Server คุณอาจได้รับส่วนลดเมื่อคุณซื้อใบอนุญาตเซิร์ฟเวอร์ Win2K เพิ่มเติม รวมถึงใบอนุญาต VS.NET และ Office
สุดท้ายนี้ แม้ว่าคุณจะซื้อระบบ SQL Server แยกต่างหาก แต่ระบบก็อาจมีราคาถูกกว่า Oracle ทุกวันนี้ การต่อรองเรื่องใบอนุญาตของ Oracle อาจทำให้รู้สึกลำบากใจ ฉันจำได้ว่าถามราคาจากตัวแทนฝ่ายขาย และเขาก็บอกว่า "คุณสามารถซื้อได้หรือเปล่า"
สรุป
หากคุณกำลังสร้างเครือข่าย .NET คุณควรใช้ SQL Server เป็น DBMS ของคุณ เพราะเป็น Microsoft .NET องค์ประกอบหลักของ ชุดแอปพลิเคชันเซิร์ฟเวอร์ การย้ายจากแพลตฟอร์มหนึ่งไปยังอีกแพลตฟอร์มหนึ่งเป็นกระบวนการสำคัญที่ต้องพิจารณาและวางแผนอย่างรอบคอบ ก่อนที่จะเปลี่ยนแพลตฟอร์ม คุณควรมีรากฐาน .NET ที่เป็นหนึ่งเดียว มีประสิทธิภาพ ง่ายต่อการจัดการ และเชื่อถือได้