Ottimizzazione delle applicazioni di Oracle Database per SAP

Quando SAP ha sviluppato il database in-memory HANA, ha scoperto che le proprie applicazioni erano i peggiori nemici del nuovo database in-memory. SAP si è resa conto che le loro applicazioni dovevano essere ottimizzate per poter beneficiare di HANA. Ma mentre SAP aveva in mente solo HANA, i database ricchi di funzionalità come Oracle possono supportare le stesse ottimizzazioni e trarne vantaggio.

Supporto Oracle Database per le ottimizzazioni delle applicazioni SAP

Ottimizzazioni per la distribuzione del carico di lavoro

SAP pensava a un database come a un dumb data store. Ogni volta che un utente vuole fare qualcosa di utile con i dati, deve essere trasferito, perché l'intelligenza si trova in SAP Application Server.

Gli svantaggi di questo approccio sono evidenti: se la somma di 1 milione di valori deve essere calcolata e se tali valori rappresentano denaro in valute diverse, 1 milione di singoli valori vengono trasferiti dal server del database al server dell'applicazione - solo per essere gettati via dopo il calcolo è stato fatto. Il traffico di rete causato da questo approccio è responsabile delle cattive prestazioni.

Come risposta a questa intuizione, SAP ha sviluppato la strategia "Push down": spingere verso il basso il codice che richiede calcoli ad alta intensità di dati dal livello dell'applicazione al livello del database. Hanno sviluppato un modello di programmazione completamente nuovo che consente al codice ABAP di richiamare (implicitamente o esplicitamente) procedure memorizzate nel database. E hanno definito una libreria di procedure standard, denominata SAP NetWeaver Core Data Services (CDS).

20 anni prima, Oracle aveva già avuto la stessa idea e preso la stessa decisione. Dalla versione 7 Oracle Database consente agli sviluppatori di creare procedure e funzioni che possono essere memorizzate ed eseguite all'interno del database. È stato quindi possibile rendere disponibili i CDS anche per Oracle Database e oggi gli sviluppatori di applicazioni SAP possono utilizzarli.

Ottimizzazioni dei modelli dati

SAP BW: Flat InfoCubes

I modelli di dati SAP (il set di tabelle utilizzate da un'applicazione e le relazioni tra di esse) erano stati definiti 15 o 20 anni fa e ottimizzati per database orientati al disco. Ma, come si è scoperto, ciò che era un'ottimizzazione nell'era dell'informatica basata su disco è un ostacolo nell'era dell'informatica in-memory.

L'esempio più famoso è probabilmente la struttura interna di un cubo SAP BW. Quello che da un punto di vista aziendale o utente sembra un singolo "cubo", è in realtà un insieme di più tabelle, e le relazioni tra di loro possono essere descritte come una gerarchia a più livelli ("stella" o "snowflake" schema). Questa complessa struttura, che richiede molti join quando viene eseguita una query o un report, rallenta notevolmente i database in memoria. Pertanto, SAP ha progettato un nuovo modello di dati più semplice per SAP BW su HANA e di conseguenza lo ha definito HANA-Optimized InfoCubes. Ma questo nuovo modello di dati non è solo ottimizzato per HANA. È ottimizzato per l'elaborazione in-memory in generale. Pertanto SAP sugli utenti Oracle che hanno attivato Oracle Database In-Memory può implementarlo, l'unica differenza è il nome (Flat InfoCubes o semplicemente Flat Cubes).

Applicazioni SAP OLTP: Table Declustering

Un'ottimizzazione meno famosa, tuttavia importante, è Table Declustering. Una tabella cluster memorizza un record completo (logico) in una singola colonna di tabella (fisica). Un valore così complesso può essere interpretato dall'Application Server SAP, ma non da un database server, il che significa che il pushdown del codice non è possibile se è coinvolta una tabella cluster. Pertanto SAP ora supporta Table Declustering, sia per HANA che per Oracle Database.

Ottimizzazioni per lo sviluppo delle applicazioni

I vantaggi del framework CDS appena descritto non sono affatto limitati alle applicazioni SAP (ad esempio le applicazioni standard create dagli sviluppatori SAP). Per i clienti, le applicazioni sviluppate in casa sono una parte essenziale del loro panorama SAP. Molte di queste applicazioni potrebbero trarre notevoli vantaggi dall'utilizzo delle funzionalità CDS.

Le viste CDS possono essere esposte tramite OData. Sulla base dell'esposizione OData dei CDS, è quindi piuttosto semplice creare applicazioni SAP Fiori utilizzando il framework di sviluppo SAP WEB IDE. Per i dettagli, vedere il report ABAP Core Data Services su anyDB.