SlideShare a Scribd company logo
© Intershop Communications
Jens Kleinschmidt - Technical Product Manager / Architect
ANSI SQL - a shortcut to Microsoft SQL Server/
Azure SQL Database for Intershop Commerce Management
Agenda
 Introduction
 Evaluation
 Why Microsoft SQL Server?
 Work Ahead
 MS SQL Support
 A Story of Epic proportion
 ANSI SQL to the rescue
 Migration Steps
 Outlook
 Summary
 Q&A
2
Introduction
 Monolithic applications supporting:
 Oracle Database
 ICM, ICI - based Intershop ORM Engine tightly coupled with Oracle
 PostgreSQL
 IOM - based on Wildfly in theory will run on “any” DB
 ICI – used for aggregated reporting data, JDBC
 Microservices supporting:
 Oracle Database, PostgreSQL, Derby via JPA implementation EclipseLink
Consolidation to at least support one DB for all Intershop
applications
3
Evaluation
 Evaluation
 PostgreSQL
 MariaDB
 MySQL
 Evaluate effort for PostgreSQL
 Evaluate EDB and embedded oracle
 Evaluate effort for Enterprise DB
 Develop Prototype for MS SQL Server
 Create concept for MS SQL Server
4
Why Microsoft SQL Server?
 PostgreSQL
 Supported already by IOM and Microservices
 Open Source, therefore no license fee, only monthly support costs
 Closest to Oracle, feature and syntax wise
 Microsoft SQL Server
 Commercial DB
 License costs, monthly support costs
 Cost neutral at worst to Oracle DB
5
So again, why we decided for Microsoft SQL Server?!
 We are Microsoft partner and SQL Server is our commitment to
Microsoft.
 Azure SQL Database is the only DBaaS available under Azure.
Meanwhile there is a preview available of
Azure Database for PostgreSQL and Intershop got
an invite for a closed beta test program.
6
Work Ahead
Data Definition (DDL):
 >750 tables
 16 views
 >2100 indexes
Data Manipulation (DML):
 >150 stored procedures
 ~100 functions
 <10 PL/SQL packages (transformed into MS SQL functions)
Data Query (DQL):
 750+ queries (65 of them are Oracle/Microsoft specific)
7
MS SQL Support – A Story of Epic proportion
 Remove Oracle Client from ICM
 Create Test Framework for SQL Statements
 Extend SQL logs to dump input/output
 Create test replaying queries
 Compare results from Oracle/MS SQL runs
 Test coverage tool in Intershop Studio
 Adapt DBInit
 Create dump import/export tool
 Divide into structure and data creation
 Transform PL/SQL packages to MS SQL functions
8
MS SQL Support – A Story of Epic proportion
 Adapt ORM for MS SQL
 Locking
 Commit
 Adapt Platform to cater for MS SQL
 Adapt Storefront Functionality
 Separate queries from managers into query files
 Develop Query JUnit test skeleton
 Transform >750 query files + test cases
 Use ANSI SQL wherever possible
9
MS SQL Support – A Story of Epic proportion
 Adapt Backoffice Functionality
 Use Microsoft’s full-text index for search
 Enable Staging for MS SQL
 Build solution for our staging shadow tables in Microsoft
 Migration Support from Oracle DB to MS SQL
 Migration Guides
 Recipes for JUnit tests
 Operations Manual
10
MS SQL Support – ANSI SQL to the rescue
We need to support Oracle and MS SQL with
mostly small differences in syntax
Dismantle to use ANSI SQL to lower
maintenance
11
Migration Steps - Remove Oracle Specifics from Java Code
 Remove Oracle specifics from Java code
 'nvl(' | 'trunc(' | 'asc nulls' | 'desc nulls' | 'to_date(' | 'bitand('
ProductVariationMappingRule.java UPDATE statement:
… "SET p.typecode=BITAND(p.typecode, -1 -32) …
… "SET p.typecode="+JDBCUtils.sqlFunction("bitand","p.typecode","(-1 -32)")+"
12
Migration Steps – Convert Functions to Procedures
 MS SQL functions can’t change DDL or DML
Convert all functions to procedures which changes DDL or DML
 MS SQL doesn’t support PL/SQL packages
Convert all PL/SQL packages into functions
13
Migration Steps – Extract Queries into Query Files
Iterator<ProductPO> pIterator = pH.getObjectsBySQLWhere("sku=? and domainID=?
and rownum=1", new String[] { sku, aDomain.getUUID() }).iterator();
Iterator<ProductPO> pIterator = null;
try
{
Map<String, Object> params = new HashMap<>();
params.put("SKU", sku);
params.put("DomainUUID", aDomain.getUUID());
productsIterator =
appProvider.get().getQueryExecutor().executePageableQuery("product/GetProductBySKUSimple",
params);
if (productsIterator.hasNext())
{
ProductPO p = productsIterator.next();
aProduct = productViewProvider.create(p.getUUID(), aDomain.getUUID());
}
} …
14
Migration Steps – Implement Dialect
 Remove Oracle specifics by using ANSI SQL or implement Microsoft
dialect
<?xml version="1.0" encoding="UTF-8"?>
<query>
<processor name="JDBC“/>
<template sqlDialect="Oracle">
…
</template>
<template sqlDialect="Microsoft">
…
</template>
</query>
15
Migration Steps – Implement Dialect
 Think twice if you want to use this!
SELECT
<sql-dialect name="Oracle">
sysdate FROM DUAL
</sql-dialect>
<sql-dialect name="Microsoft">
GETDATE()
</sql-dialect>
16
Outlook
 Beta phase in May/June
 Restricted access from Partners/Customers
 Fully functional except Staging
Further
 Evaluation of effort to support PostgreSQL
 No decision made if and when
 Depends on amount of new/old on-premise
customers demanding a free alternative
17
βeta
Key Takeaways
Intershop
 Shortcuts like ANSI SQL lowered the effort significantly
 Maintenance should be less painful
 ANSI SQL helpful as lowest common denominator
 This isn’t worth a dime if automated tests aren’t verifying the results!
Customers
 Manageable effort for Migration
 ANSI SQL is only helpful if Oracle and MS SQL needs to be supported
 Azure customers should migrate to SQL Database
 Otherwise a DBaaS can’t be used in Azure
18
Q&A
19
The world of commerce is changing.
Unlock your potential with the exciting possibilities
of Intershop omni-channel commerce.
Jena, Germany
Hong Kong, China
Melbourne, Australia
San Francisco, USA
Amsterdam, Netherlands
Berlin, Germany
Frankfurt, Germany
Hamburg, Germany
London, UK
Nuremberg, Germany
Paris, France
Rio de Janeiro, Brazil
Sofia, Bulgaria
Stuttgart, Germany
intershop.com
info@intershop.com
Furthermore Intershop is represented in Austria, Belgium,
China, Denmark, Finland, India, Italy, Norway, Russian
Federation, Spain, Sweden, Switzerland, and Turkey.
For a full overview, as well as for contact details please consult
our website: www.intershop.com/offices-and-subsidiaries
20

More Related Content

What's hot (20)

PDF
Server Day 2009: Oracle/Bea Fusion Middleware by Paolo Ramasso
JUG Genova
 
PPT
MySQL Enterprise Edition
MySQL Brasil
 
PPTX
SQL on Linux
Datavail
 
PPTX
MySQL 8.0 Released Update
Keith Hollman
 
PDF
Azure SQL Database
rockplace
 
PPTX
Be Proactive: A Good DBA Goes Looking for Signs of Trouble | IDERA
IDERA Software
 
PPTX
SQL Database on Azure
Thurupathan Vijayakumar
 
PPTX
Azure database services for PostgreSQL and MySQL
Amit Banerjee
 
PPTX
Getting Started with Azure SQL Database (Presented at Pittsburgh TechFest 2018)
Chad Green
 
PDF
Die Neuheiten in MariaDB 10.2 und MaxScale 2.1
MariaDB plc
 
PDF
MySQL Technology Overview
Keith Hollman
 
PDF
MySQL 8.0 InnoDB Cluster demo
Keith Hollman
 
PDF
Microsoft SQL Server Analysis Services (SSAS) - A Practical Introduction
Mark Ginnebaugh
 
PPTX
Migrating on premises workload to azure sql database
PARIKSHIT SAVJANI
 
PDF
SQL Server 2019 Data Virtualization
Matthew W. Bowers
 
PDF
Mysql Enterprise Edition Feature and Tools
jones4u
 
PDF
Introduction to sql database on azure
Antonios Chatzipavlis
 
PPTX
What's new in SQL Server Integration Services 2012?
Microsoft TechNet - Belgium and Luxembourg
 
PDF
Lessons Learned: Understanding Azure Data Factory Pricing (Microsoft Ignite 2...
Cathrine Wilhelmsen
 
PDF
MIGRATION OF AN OLTP SYSTEM FROM ORACLE TO MYSQL AND COMPARATIVE PERFORMANCE ...
cscpconf
 
Server Day 2009: Oracle/Bea Fusion Middleware by Paolo Ramasso
JUG Genova
 
MySQL Enterprise Edition
MySQL Brasil
 
SQL on Linux
Datavail
 
MySQL 8.0 Released Update
Keith Hollman
 
Azure SQL Database
rockplace
 
Be Proactive: A Good DBA Goes Looking for Signs of Trouble | IDERA
IDERA Software
 
SQL Database on Azure
Thurupathan Vijayakumar
 
Azure database services for PostgreSQL and MySQL
Amit Banerjee
 
Getting Started with Azure SQL Database (Presented at Pittsburgh TechFest 2018)
Chad Green
 
Die Neuheiten in MariaDB 10.2 und MaxScale 2.1
MariaDB plc
 
MySQL Technology Overview
Keith Hollman
 
MySQL 8.0 InnoDB Cluster demo
Keith Hollman
 
Microsoft SQL Server Analysis Services (SSAS) - A Practical Introduction
Mark Ginnebaugh
 
Migrating on premises workload to azure sql database
PARIKSHIT SAVJANI
 
SQL Server 2019 Data Virtualization
Matthew W. Bowers
 
Mysql Enterprise Edition Feature and Tools
jones4u
 
Introduction to sql database on azure
Antonios Chatzipavlis
 
What's new in SQL Server Integration Services 2012?
Microsoft TechNet - Belgium and Luxembourg
 
Lessons Learned: Understanding Azure Data Factory Pricing (Microsoft Ignite 2...
Cathrine Wilhelmsen
 
MIGRATION OF AN OLTP SYSTEM FROM ORACLE TO MYSQL AND COMPARATIVE PERFORMANCE ...
cscpconf
 

Similar to ANSI SQL - a shortcut to Microsoft SQL Server/Azure SQL Database for Intershop Commerce Management (20)

PDF
Intershop Commerce Management with Microsoft SQL Server
Mauro Boffardi
 
PDF
Key Methodologies for Migrating from Oracle to Postgres
EDB
 
PDF
Are we there Yet?? (The long journey of Migrating from close source to opens...
Marco Tusa
 
PPTX
Should I stay or should I go?
Markus Flechtner
 
PPTX
Un guide complet pour la migration de bases de données héritées vers PostgreSQL
EDB
 
PPTX
Ein Expertenleitfaden für die Migration von Legacy-Datenbanken zu PostgreSQL
EDB
 
PDF
Migrating from Oracle to Postgres
EDB
 
PPTX
EDB's Migration Portal - Migrate from Oracle to Postgres
EDB
 
PPTX
Expert Guide to Migrating Legacy Databases to Postgres
EDB
 
PDF
Sponsored Talk @ PGConf APAC 2018 - Migrating Oracle to EDB Postgres Approach...
PGConf APAC
 
PDF
The Real Scoop on Migrating from Oracle Databases
EDB
 
PDF
Avoiding.the.pitfallsof.oracle.migration.2013
EDB
 
PPTX
Migration from Oracle to PostgreSQL: NEED vs REALITY
Ashnikbiz
 
PPT
SQL Police
Marcus Davage
 
PPTX
Migrating from legacy Database to Postgres
Ashnikbiz
 
PDF
SQLSaturday #188 - Enterprise Information Management
Tillmann Eitelberg
 
PPTX
An Expert Guide to Migrating Legacy Databases to PostgreSQL
EDB
 
DOC
DBMS Practical File
Dushmanta Nath
 
PDF
[db tech showcase Tokyo 2017] C34: Replacing Oracle Database at DBS Bank ~Ora...
Insight Technology, Inc.
 
PDF
Database migration
Opris Monica
 
Intershop Commerce Management with Microsoft SQL Server
Mauro Boffardi
 
Key Methodologies for Migrating from Oracle to Postgres
EDB
 
Are we there Yet?? (The long journey of Migrating from close source to opens...
Marco Tusa
 
Should I stay or should I go?
Markus Flechtner
 
Un guide complet pour la migration de bases de données héritées vers PostgreSQL
EDB
 
Ein Expertenleitfaden für die Migration von Legacy-Datenbanken zu PostgreSQL
EDB
 
Migrating from Oracle to Postgres
EDB
 
EDB's Migration Portal - Migrate from Oracle to Postgres
EDB
 
Expert Guide to Migrating Legacy Databases to Postgres
EDB
 
Sponsored Talk @ PGConf APAC 2018 - Migrating Oracle to EDB Postgres Approach...
PGConf APAC
 
The Real Scoop on Migrating from Oracle Databases
EDB
 
Avoiding.the.pitfallsof.oracle.migration.2013
EDB
 
Migration from Oracle to PostgreSQL: NEED vs REALITY
Ashnikbiz
 
SQL Police
Marcus Davage
 
Migrating from legacy Database to Postgres
Ashnikbiz
 
SQLSaturday #188 - Enterprise Information Management
Tillmann Eitelberg
 
An Expert Guide to Migrating Legacy Databases to PostgreSQL
EDB
 
DBMS Practical File
Dushmanta Nath
 
[db tech showcase Tokyo 2017] C34: Replacing Oracle Database at DBS Bank ~Ora...
Insight Technology, Inc.
 
Database migration
Opris Monica
 
Ad

Recently uploaded (20)

PPTX
Milwaukee Marketo User Group - Summer Road Trip: Mapping and Personalizing Yo...
bbedford2
 
PPTX
Foundations of Marketo Engage - Powering Campaigns with Marketo Personalization
bbedford2
 
PDF
TheFutureIsDynamic-BoxLang witch Luis Majano.pdf
Ortus Solutions, Corp
 
PDF
Why Businesses Are Switching to Open Source Alternatives to Crystal Reports.pdf
Varsha Nayak
 
PDF
Linux Certificate of Completion - LabEx Certificate
VICTOR MAESTRE RAMIREZ
 
PPTX
Agentic Automation: Build & Deploy Your First UiPath Agent
klpathrudu
 
PDF
Automate Cybersecurity Tasks with Python
VICTOR MAESTRE RAMIREZ
 
PPTX
AEM User Group: India Chapter Kickoff Meeting
jennaf3
 
PDF
How to Hire AI Developers_ Step-by-Step Guide in 2025.pdf
DianApps Technologies
 
PPTX
Homogeneity of Variance Test Options IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
PPTX
Tally_Basic_Operations_Presentation.pptx
AditiBansal54083
 
PPTX
OpenChain @ OSS NA - In From the Cold: Open Source as Part of Mainstream Soft...
Shane Coughlan
 
PPTX
Hardware(Central Processing Unit ) CU and ALU
RizwanaKalsoom2
 
PDF
Alexander Marshalov - How to use AI Assistants with your Monitoring system Q2...
VictoriaMetrics
 
PPTX
Help for Correlations in IBM SPSS Statistics.pptx
Version 1 Analytics
 
PPTX
Tally software_Introduction_Presentation
AditiBansal54083
 
PDF
Build It, Buy It, or Already Got It? Make Smarter Martech Decisions
bbedford2
 
PPTX
Why Businesses Are Switching to Open Source Alternatives to Crystal Reports.pptx
Varsha Nayak
 
PPTX
Agentic Automation Journey Session 1/5: Context Grounding and Autopilot for E...
klpathrudu
 
PDF
[Solution] Why Choose the VeryPDF DRM Protector Custom-Built Solution for You...
Lingwen1998
 
Milwaukee Marketo User Group - Summer Road Trip: Mapping and Personalizing Yo...
bbedford2
 
Foundations of Marketo Engage - Powering Campaigns with Marketo Personalization
bbedford2
 
TheFutureIsDynamic-BoxLang witch Luis Majano.pdf
Ortus Solutions, Corp
 
Why Businesses Are Switching to Open Source Alternatives to Crystal Reports.pdf
Varsha Nayak
 
Linux Certificate of Completion - LabEx Certificate
VICTOR MAESTRE RAMIREZ
 
Agentic Automation: Build & Deploy Your First UiPath Agent
klpathrudu
 
Automate Cybersecurity Tasks with Python
VICTOR MAESTRE RAMIREZ
 
AEM User Group: India Chapter Kickoff Meeting
jennaf3
 
How to Hire AI Developers_ Step-by-Step Guide in 2025.pdf
DianApps Technologies
 
Homogeneity of Variance Test Options IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
Tally_Basic_Operations_Presentation.pptx
AditiBansal54083
 
OpenChain @ OSS NA - In From the Cold: Open Source as Part of Mainstream Soft...
Shane Coughlan
 
Hardware(Central Processing Unit ) CU and ALU
RizwanaKalsoom2
 
Alexander Marshalov - How to use AI Assistants with your Monitoring system Q2...
VictoriaMetrics
 
Help for Correlations in IBM SPSS Statistics.pptx
Version 1 Analytics
 
Tally software_Introduction_Presentation
AditiBansal54083
 
Build It, Buy It, or Already Got It? Make Smarter Martech Decisions
bbedford2
 
Why Businesses Are Switching to Open Source Alternatives to Crystal Reports.pptx
Varsha Nayak
 
Agentic Automation Journey Session 1/5: Context Grounding and Autopilot for E...
klpathrudu
 
[Solution] Why Choose the VeryPDF DRM Protector Custom-Built Solution for You...
Lingwen1998
 
Ad

ANSI SQL - a shortcut to Microsoft SQL Server/Azure SQL Database for Intershop Commerce Management

  • 1. © Intershop Communications Jens Kleinschmidt - Technical Product Manager / Architect ANSI SQL - a shortcut to Microsoft SQL Server/ Azure SQL Database for Intershop Commerce Management
  • 2. Agenda  Introduction  Evaluation  Why Microsoft SQL Server?  Work Ahead  MS SQL Support  A Story of Epic proportion  ANSI SQL to the rescue  Migration Steps  Outlook  Summary  Q&A 2
  • 3. Introduction  Monolithic applications supporting:  Oracle Database  ICM, ICI - based Intershop ORM Engine tightly coupled with Oracle  PostgreSQL  IOM - based on Wildfly in theory will run on “any” DB  ICI – used for aggregated reporting data, JDBC  Microservices supporting:  Oracle Database, PostgreSQL, Derby via JPA implementation EclipseLink Consolidation to at least support one DB for all Intershop applications 3
  • 4. Evaluation  Evaluation  PostgreSQL  MariaDB  MySQL  Evaluate effort for PostgreSQL  Evaluate EDB and embedded oracle  Evaluate effort for Enterprise DB  Develop Prototype for MS SQL Server  Create concept for MS SQL Server 4
  • 5. Why Microsoft SQL Server?  PostgreSQL  Supported already by IOM and Microservices  Open Source, therefore no license fee, only monthly support costs  Closest to Oracle, feature and syntax wise  Microsoft SQL Server  Commercial DB  License costs, monthly support costs  Cost neutral at worst to Oracle DB 5
  • 6. So again, why we decided for Microsoft SQL Server?!  We are Microsoft partner and SQL Server is our commitment to Microsoft.  Azure SQL Database is the only DBaaS available under Azure. Meanwhile there is a preview available of Azure Database for PostgreSQL and Intershop got an invite for a closed beta test program. 6
  • 7. Work Ahead Data Definition (DDL):  >750 tables  16 views  >2100 indexes Data Manipulation (DML):  >150 stored procedures  ~100 functions  <10 PL/SQL packages (transformed into MS SQL functions) Data Query (DQL):  750+ queries (65 of them are Oracle/Microsoft specific) 7
  • 8. MS SQL Support – A Story of Epic proportion  Remove Oracle Client from ICM  Create Test Framework for SQL Statements  Extend SQL logs to dump input/output  Create test replaying queries  Compare results from Oracle/MS SQL runs  Test coverage tool in Intershop Studio  Adapt DBInit  Create dump import/export tool  Divide into structure and data creation  Transform PL/SQL packages to MS SQL functions 8
  • 9. MS SQL Support – A Story of Epic proportion  Adapt ORM for MS SQL  Locking  Commit  Adapt Platform to cater for MS SQL  Adapt Storefront Functionality  Separate queries from managers into query files  Develop Query JUnit test skeleton  Transform >750 query files + test cases  Use ANSI SQL wherever possible 9
  • 10. MS SQL Support – A Story of Epic proportion  Adapt Backoffice Functionality  Use Microsoft’s full-text index for search  Enable Staging for MS SQL  Build solution for our staging shadow tables in Microsoft  Migration Support from Oracle DB to MS SQL  Migration Guides  Recipes for JUnit tests  Operations Manual 10
  • 11. MS SQL Support – ANSI SQL to the rescue We need to support Oracle and MS SQL with mostly small differences in syntax Dismantle to use ANSI SQL to lower maintenance 11
  • 12. Migration Steps - Remove Oracle Specifics from Java Code  Remove Oracle specifics from Java code  'nvl(' | 'trunc(' | 'asc nulls' | 'desc nulls' | 'to_date(' | 'bitand(' ProductVariationMappingRule.java UPDATE statement: … "SET p.typecode=BITAND(p.typecode, -1 -32) … … "SET p.typecode="+JDBCUtils.sqlFunction("bitand","p.typecode","(-1 -32)")+" 12
  • 13. Migration Steps – Convert Functions to Procedures  MS SQL functions can’t change DDL or DML Convert all functions to procedures which changes DDL or DML  MS SQL doesn’t support PL/SQL packages Convert all PL/SQL packages into functions 13
  • 14. Migration Steps – Extract Queries into Query Files Iterator<ProductPO> pIterator = pH.getObjectsBySQLWhere("sku=? and domainID=? and rownum=1", new String[] { sku, aDomain.getUUID() }).iterator(); Iterator<ProductPO> pIterator = null; try { Map<String, Object> params = new HashMap<>(); params.put("SKU", sku); params.put("DomainUUID", aDomain.getUUID()); productsIterator = appProvider.get().getQueryExecutor().executePageableQuery("product/GetProductBySKUSimple", params); if (productsIterator.hasNext()) { ProductPO p = productsIterator.next(); aProduct = productViewProvider.create(p.getUUID(), aDomain.getUUID()); } } … 14
  • 15. Migration Steps – Implement Dialect  Remove Oracle specifics by using ANSI SQL or implement Microsoft dialect <?xml version="1.0" encoding="UTF-8"?> <query> <processor name="JDBC“/> <template sqlDialect="Oracle"> … </template> <template sqlDialect="Microsoft"> … </template> </query> 15
  • 16. Migration Steps – Implement Dialect  Think twice if you want to use this! SELECT <sql-dialect name="Oracle"> sysdate FROM DUAL </sql-dialect> <sql-dialect name="Microsoft"> GETDATE() </sql-dialect> 16
  • 17. Outlook  Beta phase in May/June  Restricted access from Partners/Customers  Fully functional except Staging Further  Evaluation of effort to support PostgreSQL  No decision made if and when  Depends on amount of new/old on-premise customers demanding a free alternative 17 βeta
  • 18. Key Takeaways Intershop  Shortcuts like ANSI SQL lowered the effort significantly  Maintenance should be less painful  ANSI SQL helpful as lowest common denominator  This isn’t worth a dime if automated tests aren’t verifying the results! Customers  Manageable effort for Migration  ANSI SQL is only helpful if Oracle and MS SQL needs to be supported  Azure customers should migrate to SQL Database  Otherwise a DBaaS can’t be used in Azure 18
  • 20. The world of commerce is changing. Unlock your potential with the exciting possibilities of Intershop omni-channel commerce. Jena, Germany Hong Kong, China Melbourne, Australia San Francisco, USA Amsterdam, Netherlands Berlin, Germany Frankfurt, Germany Hamburg, Germany London, UK Nuremberg, Germany Paris, France Rio de Janeiro, Brazil Sofia, Bulgaria Stuttgart, Germany intershop.com [email protected] Furthermore Intershop is represented in Austria, Belgium, China, Denmark, Finland, India, Italy, Norway, Russian Federation, Spain, Sweden, Switzerland, and Turkey. For a full overview, as well as for contact details please consult our website: www.intershop.com/offices-and-subsidiaries 20

Editor's Notes

  • #2: - What did Intershop do to support MS SQL? - Facts, numbers, performance measurements: Oracle DB vs. MS SQL - Steps to migrate from Oracle DB to MS SQL