如果需要從Oracle遷移到MS SQLServer (1)
MS SQLServer與Oracle,兩種RDBMS都是關聯式資料庫的佼佼者。但請注意:都是關聯式資料庫、但有質的不同!
首先,體系結構方面的差異,可能是最大的。Oracle一般執行在UNIX,如AIX、HP-UX中,MS SQLServer則執行在Windows環境下。Oracle在UNIX上採取了程式結構,而MS SQL則是執行緒結構!
其次,那些用來描述 Oracle術語,在 MS SQL Server 中則含義可能完全不同。Oracle就沒有“資料庫”這個概念,而MS SQL中資料庫則是最重要的後設資料型別。
第三,Oracle 和 SQL Server 都支援標準ANSI92的SQL,但又各自有著基於SQL-92 的擴充套件。這給應用系統在二者之間的遷移帶來巨大的麻煩,孰之過?
第四,從應用開發人員角度看,Oracle 和 MS SQLServer在管理資料的方式是相似的。但是實際上起內部儲存結構差異明顯。如果管理不當,應用程式遷移後的效能影響、正確性恐怕很大。
第五,出於開發上的考慮,開發人員為了遷移上的便利,僅使用標準的SQL-92 SQL 語言標準,禁用每種 RDBMS 提供的擴充套件,以使其程式程式碼儘可能通用。效率呢?Oracle 和 SQL Server各自的優化特點蕩然無存,效率特色無從談起!
例如,Oracle 的 DECODE 函式是 Oracle 特有產物,可對應MS SQL Server 的 CASE 表示式。他們都不是SQL-92 裡面的內容,不使用之,則只能以其他程式設計方式實現,但可能意味著RDBMS上更多的資料操作。
第六,SQL 語言的過程化嵌入也不同。Oracle 使用PL/SQL,MS SQL Server 使用T-SQL 語言。其功能是相似的,但其語法還真是各有不同。因此,應用遷移中我們可能不得不放棄使用部分儲存程式、觸發器。有時,有些功能無法替代!
第七,應用開發中難免使用專用的開發介面,如 Oracle 的OCI(Oracle 呼叫介面)轉換程式,或MS SQL Server 的db_lib介面。為了通用而不得不使用開放式資料庫連線 (ODBC) 介面,往往是應用系統的效能殺手!
待續...
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22363020/viewspace-623086/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【遷移】SqlServer 遷移到 MySQL 方法ServerMySql
- 從eclipse遷移到idea(1 安裝篇)EclipseIdea
- 平安科技從 Oracle 遷移到 UbiSQL 的實踐OracleSQL
- Oracle從Windows 11.2.0.1升級並遷移到Linux 19cOracleWindowsLinux
- 從 Nginx 遷移到 Envoy ProxyNginx
- 從 golang flag 遷移到 cmdrGolang
- 使用DynamoShake從dynamodb遷移到mongodbMongoDB
- 從mpvue遷移到uni-appVueAPP
- [譯]從 SQLite 逐步遷移到 RoomSQLiteOOM
- [譯] 從 SQLite 逐步遷移到 RoomSQLiteOOM
- EF Core從TPH遷移到TPT
- 從 webpack v1 遷移到 webpack v2 新特性Web
- Gradle指南之從Groovy遷移到KotlinGradleKotlin
- 記一次MySQL資料遷移到SQLServer全過程MySqlServer
- 多租戶:在Oracle12.2中 從Non-CDB遷移到PDB,從PDB遷移另一個CDB中Oracle
- Spring Boot 從1.5遷移到2.0.5 - DZone JavaSpring BootJava
- 案例:微服務從Java/SpringBoot遷移到Golang微服務JavaSpring BootGolang
- 如何從 AWS CodeCommit 遷移到極狐GitLab?MITGitlab
- 從Firebase+Redis遷移到PlanetScale+MySQLRedisMySql
- 你的資料庫真的需要遷移到雲嗎?資料庫
- 將 CentOS 8 作業系統遷移到 Oracle LinuxCentOS作業系統OracleLinux
- Android技術棧(一)從Activity遷移到FragmentAndroidFragment
- 從eclipse遷移到idea(2 使用習慣篇)EclipseIdea
- 從過時的 Windows 機器遷移到 LinuxWindowsLinux
- 從RabbitMQ平滑遷移到RocketMQ技術實戰MQ
- 記錄從vuecli打包庫遷移到rollup打包Vue
- 從 CRUD 遷移到事件溯源的祕訣 - eventstore事件
- 從 Newtonsoft.Json 遷移到 System.Text.JsonJSON
- Zabbix監控 MS SqlServer2019SQLServer
- Oracle 遷移到 OB 過程中的函式改造案例Oracle函式
- Oracle優化案例-從Exadata遷移到國產一體機一般方法探究(四)Oracle優化
- svn 遷移到gitGit
- 將spfile從ASM裡遷移到檔案系統ASM
- Dcat Admin 教程 - 如何從 Laravel admin 遷移到 dcat admin?Laravel
- 如何從阿里雲ECS遷移到AWS EC2?阿里
- 如何平穩地從nacos遷移到r-nacos?
- 為何我們前端從Vue 2遷移到Svelte?前端Vue
- 從單體遷移到微服務的十二種方法微服務
- 如何從 vue-element-admin 遷移到 Fantastic-adminVueAST