Elaborazione delle query Cloud SQL

Le query vengono elaborate utilizzando celle nel cluster di Oracle Big Data Service.

Informazioni su Smart Scan per le origini Big Data

Le tabelle esterne Oracle non dispongono di indici tradizionali. Le query su queste tabelle esterne in genere richiedono una scansione completa della tabella. L'agente di elaborazione Oracle Cloud SQL nel file DataNodes del cluster Hadoop estende le funzionalità Smart Scan (ad esempio gli offload dei predicati di filtro) alle tabelle esterne Oracle. Smart Scan è stato utilizzato per qualche tempo su Oracle Exadata Database Machine per eseguire il filtro delle colonne e dei predicati nel layer di storage prima che i risultati delle query vengano inviati di nuovo al layer di database. In Cloud SQL, Smart Scan è un passaggio di filtro finale eseguito localmente sul server Hadoop per garantire che vengano inviati solo gli elementi richiesti a Cloud SQL Query Server. Le celle Cloud SQL in esecuzione su Hadoop DataNodes sono in grado di eseguire Smart Scansioni su vari formati di dati in HDFS, ad esempio testo CSV, Avro e Parquet.

Questa implementazione di Smart Scan sfrutta la potenza di elaborazione massicciamente parallela del cluster Hadoop per filtrare i dati alla sua origine. Può preventivamente scartare un'enorme porzione di dati irrilevanti, fino al 99% del totale. Questo ha diversi vantaggi:

  • Riduce notevolmente lo spostamento dei dati e il traffico di rete tra il cluster e il database.

  • Restituisce set di risultati molto più piccoli al server Oracle Database.

  • Aggrega i dati quando possibile sfruttando la scalabilità e l'elaborazione dei cluster.

I risultati delle query vengono restituiti molto più velocemente. Questo è il risultato diretto della riduzione del traffico sulla rete e del carico ridotto su Oracle Database.

Informazioni sugli indici di storage

Per i dati memorizzati in HDFS, Oracle Cloud SQL gestisce automaticamente gli indici di storage, che è trasparente per Oracle Database. Gli indici di memorizzazione contengono il riepilogo della distribuzione dei dati su un disco rigido per i dati memorizzati in HDFS. Gli indici di storage riducono il costo delle operazioni di I/O e il costo della CPU per la conversione dei dati da file sequenziali a blocchi di Oracle Database. Si può pensare a un indice di storage come a un indice negativo. Indica a Smart Scan che i dati non rientrano in un blocco di dati, il che consente a Smart Scan di saltare la lettura di tale blocco. Ciò può portare a un'evitamento significativo di I/O.

Gli indici di memorizzazione possono essere utilizzati solo per le tabelle esterne basate su HDFS e create utilizzando il driver ORACLE_HDFS o il driver ORACLE_HIVE. Gli indici di memorizzazione non possono essere utilizzati per le tabelle esterne che utilizzano StorageHandlers, ad esempio Apache HBase e Oracle NoSQL.

Un indice di storage è una raccolta di indici di aree in memoria e ogni indice di area memorizza i riepiloghi per un massimo di 32 colonne. Esiste un indice di area per ogni divisione. Il contenuto memorizzato in un indice area è indipendente dagli altri indici area. Ciò li rende altamente scalabili ed evita i conflitti di latch.

Gli indici di memorizzazione mantengono i valori minimo e massimo delle colonne di un'area per ogni indice di area. I valori minimo e massimo vengono utilizzati per eliminare gli I/O non necessari, noti anche come filtro I/O. I byte di I/O del granulo XT della cella salvati dalla statistica degli indici di storage, disponibili nella vista V$SYSSTAT, mostrano il numero di byte di I/O salvati mediante gli indici di storage.

Le query che utilizzano i seguenti confronti vengono migliorate dagli indici di memorizzazione:

  • Parità (=)

  • Disuguaglianza (<, != o >)

  • minore o uguale a (<=)

  • Maggiore o uguale a (>=)

  • È NULLO

  • NON È NULLO

Gli indici di storage vengono creati automaticamente dopo che il servizio Oracle Cloud SQL ha ricevuto una query con un predicato di confronto maggiore del valore massimo o minore del valore minimo per la colonna in un'area.

Nota

  • L'efficacia degli indici di memorizzazione può essere migliorata ordinando le righe in una tabella in base alle colonne che vengono visualizzate di frequente nella clausola di query WHERE.

  • Gli indici di memorizzazione funzionano con qualsiasi tipo di dati non linguistico e funzionano con tipi di dati linguistici simili a quelli dell'indice non linguistico.

Eliminazione di I/O su disco con indici di storage

Nella seguente figura vengono visualizzati gli indici di una tabella e di un'area. I valori della colonna B nella tabella sono compresi nell'intervallo da 1 a 8. Un indice area memorizza il minimo 1 e il massimo 5. L'altro indice area memorizza il minimo di 3 e il massimo di 8.

una tabella che visualizza quattro colonne, dalla A alla D. La colonna B contiene sei righe di dati con valori: 1,3,5,5,8,3. Per le righe da 1 a 3, viene visualizzato un testo: Min B=1 e Max B=5. Per le righe da 4 a 6, viene visualizzato un testo: Min B=3 e Max B=8. Viene visualizzato un testo fpr rpws 4-6: I/O eliminato utilizzando l'indice di storage.
Per una query come quella riportata di seguito, solo il primo set di righe corrisponde. L'I/O del disco viene eliminato perché il valore minimo e massimo del secondo set di righe non corrisponde alla clausola WHERE della query.
SELECT * 
FROM TABLE 
WHERE B < 2;

Miglioramento delle prestazioni di join mediante gli indici di storage

L'uso degli indici di memorizzazione consente ai join di tabella di saltare le operazioni di I/O non necessarie. Ad esempio, la seguente query eseguirà un'operazione di I/O e applicherà un filtro Bloom solo al primo blocco della fact table. I filtri Bloom sono la chiave per migliorare le prestazioni di join. Nell'esempio, un predicato si trova nella tabella dimensioni, non nella tabella fact. Il filtro Bloom viene creato in base a dim.name=Hard drive e quindi applicato alla fact table. Pertanto, anche se il filtro si trova nella tabella dimensioni, è possibile filtrare i dati nella relativa origine (Hadoop) in base ai risultati della query dimensione. Ciò consente anche il coinvolgimento di ottimizzazioni come gli indici di storage.

SELECT count(*) 
FROM fact, dimension dim  
WHERE fact.m=dim.m and dim.product="Hard drive";
L'immagine contiene due tabelle. La prima tabella ha due colonne: Dimensione e M con valori: Ventola: 1, Disco rigido: 3, LED: 5 e Cavo di alimentazione: 8. Un filtro fioritura con min/max per M viene applicato a questa tabella e si traduce in un'altra tabella chiamata Fact. La tabella Fact contiene sei righe. La colonna M della tabella fact contiene sei righe di dati con i valori seguenti: 1,3,5,5,8,3. Per le prime tre righe viene visualizzato un testo: Esegui I/O e applica il filtro fioritura. Per le righe da 4 a 6 viene visualizzato un testo: Salta I/O a causa dell'indice di storage.

L'I/O per il secondo blocco della fact table viene completamente eliminato dagli indici di storage poiché il relativo intervallo minimo/massimo (5,8) non è presente nel filtro Bloom.

Informazioni sul pushdown predicato

Molti sistemi Big Data supportano un certo livello di off-load dei predicati, sia attraverso il tipo di file stesso (ad esempio, Apache Parquet), sia attraverso il partizionamento di Hive e le API StorageHandler. Oracle Cloud SQL sfrutta queste funzionalità off-load spingendo i predicati da Oracle Database nei sistemi di supporto. Ad esempio, il pushdown dei predicati abilita i seguenti comportamenti automatici:

  • Le query sulle tabelle Hive partizionate vengono eliminate in base ai predicati di filtro sulle colonne di partizione.

  • Le query sui file Apache Parquet e Apache ORC riducono l'I/O testando i predicati rispetto alle strutture di tipo indice interne contenute in questi formati di file.

    Nota

    È necessario creare i file Parquet utilizzando Hive o Spark. Ai file Parquet creati utilizzando Apache Impala mancano le statistiche necessarie per il pushdown dei predicati.
  • Le query su Oracle NoSQL Database o Apache HBase utilizzano i predicati SARGable per eseguire scansioni secondarie dei dati nel data store remoto.

Tipi di dati necessari per abilitare il pushdown dei predicati

Il pushdown dei predicati richiede la presenza di determinati mapping tra i tipi di dati Hive e i tipi di dati Oracle. Questi mapping sono descritti nella tabella riportata di seguito.

Tipo di dati Hive Mappato a tipo di dati Oracle

CARICO(m)

CHAR(n), VARCHAR2(n) dove n è >= m

VARCHAR(m)

CHAR(n), VARCHAR2(n) dove n è >= m.

stringa

CAR(n), VARCHAR2(n)

DATE

DATE

INDICATORE ORARIO

TIMESTAMP(9) Hive TIMESTAMP ha nanosecondi, 9 cifre frazionarie secondi.

TINYINT

NUMBER(3) preferibilmente, ma NUMBER o NUMBER(n) per qualsiasi valore di n è valido.

SMALLINT 

NUMBER(5) preferibilmente, ma NUMBER o NUMBER(n) per qualsiasi valore di n è valido.

INT  

NUMBER(10) preferibilmente, ma NUMBER o NUMBER(n) per qualsiasi valore di n è valido.

BIGINT                    

NUMBER(19) preferibilmente, ma NUMBER o NUMBER(n) per qualsiasi valore di n è OK.

DECIMALE (m)

NUMBER(n) dove m = n preferibilmente, ma NUMBER o NUMBER(n) per qualsiasi valore di n è valido.

FLOAT                      

BINARY_FLOAT

DOPPIO                     

BINARY_DOUBLE

BINARIO

RAW(n)

BOOLEAN

CHAR(n), VARCHAR2(n) dove n è >= 5, valori 'TRUE', 'FALSE'

BOOLEAN

NUMBER(1) preferibilmente, ma NUMBER o NUMBER(n) per qualsiasi valore di n è valido. Valori 0 (false), 1 (true).

Informazioni sull'elaborazione CLOB (Pushdown of Character Large Object)

Le query relative ai dati Hadoop possono comportare l'elaborazione di oggetti di grandi dimensioni con potenzialmente milioni di record. È inefficiente restituire questi oggetti a Oracle Database per filtrare e analizzare. Oracle Cloud SQL può fornire significativi miglioramenti delle prestazioni spingendo l'elaborazione CLOB fino alle proprie celle di elaborazione nel cluster Hadoop. Il filtro in Hadoop riduce il numero di righe restituite a Oracle Database. L'analisi riduce la quantità di dati restituiti da una colonna all'interno di ogni riga filtrata.

È possibile disabilitare o riabilitare il pushdown di elaborazione CLOB per soddisfare le proprie esigenze.

Questa funzionalità si applica attualmente solo alle espressioni JSON che restituiscono dati CLOB. Le espressioni di filtro JSON idonee per la valutazione del livello di storage includono la sintassi semplificata, JSON_VALUE e JSON_QUERY.

Lo stesso supporto verrà fornito per altri tipi CLOB (ad esempio substr e instr) e per i dati BLOB nelle prossime release.

Cloud SQL può eseguire il push dell'elaborazione in Hadoop per i CLOB entro i seguenti vincoli di dimensione:

  • Filtro per colonne CLOB fino a 1 MB di dimensione.

    La quantità effettiva di dati che è possibile utilizzare per la valutazione nello storage server può variare, a seconda del set di caratteri utilizzato.

  • Analisi per colonne fino a 32 KB.

    Questo limite fa riferimento alla proiezione della lista di selezione dalla memoria per il tipo di dati CLOB.

L'elaborazione torna a Oracle Database solo quando le dimensioni delle colonne superano questi due valori.

Elaborazione dei documenti JSON

Per query in documenti JSON di grandi dimensioni, il pushdown dell'elaborazione CLOB nelle celle di elaborazione Cloud SQL in Hadoop può essere estremamente efficace. Si consideri il seguente esempio, in cui le informazioni sugli ordini di acquisto vengono memorizzate in JSON. Si supponga che la dimensione del record possa essere fino a 25K e che sia necessario elaborare diversi milioni di record di questo tipo.
{"ponumber":9764,"reference":"LSMITH-20141017","requestor":"Lindsey Smith","email": "Lindsey@myco.com", "company":"myco" …}
È possibile creare la tabella esterna per accedere a questi dati come indicato di seguito. Si noti che esiste una singola colonna CLOB.
CREATE TABLE POS_DATA
  ( pos_info CLOB )
  ORGANIZATION EXTERNAL
  ( TYPE ORACLE_HDFS
    DEFAULT DIRECTORY DEFAULT_DIR
    LOCATION ('/data/pos/*')
  )
 REJECT LIMIT UNLIMITED;
È quindi possibile eseguire una query sui dati con questa semplice sintassi:
SELECT p.pos_info.email, p.pos_info.requestor
FROM POS_DATA p
WHERE p.pos_info.company='myco'

L'esempio di query sopra riportato riguarda due ottimizzazioni di eliminazione dei dati:

  • I dati vengono filtrati in base alle celle Cloud SQL nel cluster Hadoop. Vengono analizzati solo i record relativi all'azienda myco e, dopo l'analisi, vengono restituiti al database solo i dati selezionati di questi record.

  • Le celle Cloud SQL nel cluster analizzano il set di record filtrato e da ogni record vengono restituiti al database solo i valori per i due attributi richiesti (p.pos_info.email e p.pos_info.requestor).

La tabella seguente mostra alcuni altri esempi in cui è supportato il pushdown di elaborazione CLOB. Ricorda che le proiezioni (i riferimenti sul lato selezionato della colonna CLOB) sono limitati a 32 KB di dati CLOB, mentre il pushdown dei predicati è limitato a 1 MB di dati CLOB.

Query Commenta
SELECT count(*) FROM pos_data p WHERE pos_info is json; In questo caso, il predicato garantisce che vengano restituite solo le colonne conformi al formato JSON.
SELECT pos_info FROM pos_data p WHERE pos_info is json; Lo stesso predicato del caso precedente, ma ora è previsto il valore CLOB.
SELECT json_value(pos_info, '$.reference') FROM pos_data p WHERE json_value(pos_info, '$.ponumber') > 9000 Qui, il predicato viene emesso in un campo del documento JSON ed eseguiamo anche un valore JSON per recuperare il campo "riferimento" al di sopra del valore JSON CLOB previsto.
SELECT p.pos_info.reference FROM pos_data p WHERE p.pos_info.ponumber > 9000; Questa è funzionalmente la stessa query dell'esempio precedente, ma espressa in sintassi semplificata.
SELECT p.pos_info.email FROM po_data p WHERE json_exists(pos_info, '$.requestor') and json_query(pos_info, '$.requestor') is not null; Questo esempio mostra come utilizzare anche json_exists e json_query come predicati.

Informazioni sull'offload dell'aggregazione

Oracle Cloud SQL utilizza la tecnologia Oracle In-Memory per eseguire il push dell'elaborazione di aggregazione nelle celle Cloud SQL. Ciò consente a Cloud SQL di sfruttare la potenza di elaborazione del cluster Hadoop per la distribuzione delle aggregazioni nei nodi cluster.

I miglioramenti delle prestazioni possono essere significativamente più rapidi rispetto alle aggregazioni che non si scaricano, soprattutto quando vi è un numero moderato di raggruppamenti di riepilogo. Per le query a tabella singola, l'operazione di aggregazione deve essere scaricata in modo coerente.

Le celle Cloud SQL supportano aggregazioni a tabella singola e a tabella multipla (ad esempio, tabelle dimensione che si uniscono a una tabella fact). Per le aggregazioni multi-tabella, Oracle Database utilizza l'ottimizzazione della trasformazione dei vettori chiave in cui i vettori chiave vengono inviati alle celle per il processo di aggregazione. Questo tipo di trasformazione è utile per le query SQL con join a stella che utilizzano gli operatori di aggregazione standard (ad esempio SUM, MIN, MAX e COUNT), comuni nelle query business.

Una query di trasformazione vettoriale è una query più efficiente che utilizza un filtro Bloom per i join. Quando si utilizza una query trasformata vettoriale con celle Cloud SQL, le prestazioni dei join nella query vengono migliorate dalla possibilità di scaricare il filtraggio per le righe utilizzate per l'aggregazione. Durante questa ottimizzazione viene visualizzata un'operazione KEY VECTOR USE nel piano di query.

Nelle celle Cloud SQL, le query trasformate da vettori traggono vantaggio da un'elaborazione più efficiente grazie all'applicazione di colonne group-by (vettori di chiavi) all'indice di storage Cloud SQL.

In alcuni casi è possibile che non venga visualizzato il vantaggio dell'offload dell'aggregazione:
  • Predicato mancante

    Se nell'explain plan manca il predicato SYS_OP_VECTOR_GROUP_BY, l'offload dell'aggregazione è interessato. Il predicato può essere mancante per i seguenti motivi:
    • Presenza di un'origine riga intermedia non consentita tra la scansione della tabella e le origini riga di raggruppamento.

    • La scansione della tabella non produce set di righe.

    • Presenza di un'espressione o di un tipo di dati nella query che non è possibile scaricare.

    • Vector group-by è disabilitato manualmente.

    • La tabella di scansione o configurazione della tabella non prevede guadagni derivanti dall'offload dell'aggregazione.

  • Smart Scan mancante

    I byte di interconnessione delle celle restituiti da XT Smart Scan e dai granuli XT delle celle richiesti per le statistiche di offload del predicato devono essere disponibili.

  • Vettori chiave mancanti

    Il limite dei dati trasmessi alle celle è di 1 MB. Se questa soglia viene superata, le query possono trarre vantaggio dal filtro vettoriale della chiave intelligente, ma non necessariamente dall'aggregazione scaricata. Questa condizione è nota come modalità Key Vector Lite. A causa delle loro grandi dimensioni, alcuni dei vettori chiave non sono completamente scaricati. Vengono scaricati in modalità lite insieme ai vettori chiave che non supportano l'offload di aggregazione. I vettori chiave non sono completamente serializzati in modalità lite. L'offload vettoriale group-by è disabilitato quando i vettori chiave vengono scaricati in modalità lite.

Nota

Per informazioni sul funzionamento dell'aggregazione in Oracle Database, vedere Optimizing Aggregation nel manuale Oracle Database In-Memory Guide.

Informazioni sulle statistiche Cloud SQL

Oracle Cloud SQL fornisce una serie di statistiche che possono fornire dati per le analisi delle prestazioni.

Cinque statistiche XT cella chiave e indice di storage

Se una query è scaricabile, le seguenti statistiche relative a XT possono aiutarti a determinare il tipo di risparmio di I/O che puoi aspettarti dall'offload e da Smart Scan.

  • granuli XT della cella richiesti per l'offload del predicato

    Il numero di granuli richiesti dipende da una serie di fattori, tra cui la dimensione del blocco HDFS, la suddivisione dell'origine dati Hadoop e l'efficacia dell'eliminazione della partizione Hive.

  • byte del granulo XT della cella richiesti per l'offload del predicato

    Il numero di byte richiesti per la scansione. Questa è la dimensione dei dati su Hadoop da analizzare dopo l'eliminazione della partizione Hive e prima della valutazione dell'indice di storage.

  • byte di interconnessione cellulare restituiti da XT Smart Scan

    Numero di byte di I/O restituiti da una scansione intelligente XT a Oracle Database.

  • tentativi di offload del predicato granulo XT cella

    Il numero di volte in cui un processo Cloud SQL in esecuzione su un DataNode non è riuscito a completare l'azione richiesta. Cloud SQL riprova automaticamente le richieste non riuscite su altri DataNodes che dispongono di una replica dei dati. Il valore dei nuovi tentativi deve essere zero.

  • byte di I/O del granulo XT della cella salvati dall'indice di storage

    Numero di byte filtrati in base agli indici di storage a livello di cella di storage. Si tratta di dati che non sono stati sottoposti a scansione, in base alle informazioni fornite dagli indici di memorizzazione.

È possibile controllare queste statistiche prima e dopo l'esecuzione delle query come indicato di seguito. In questo esempio vengono visualizzati i valori con valore nullo prima di eseguire qualsiasi query.

SQL> SELECT sn.name,ms.value 
FROM V$MYSTAT ms, V$STATNAME sn 
WHERE ms.STATISTIC#=sn.STATISTIC# AND sn.name LIKE '%XT%'; 

NAME                                                      VALUE
-----------------------------------------------------     -----
cell XT granules requested for predicate offload          0 
cell XT granule bytes requested for predicate offload     0
cell interconnect bytes returned by XT smart scan         0 
cell XT granule predicate offload retries                 0
cell XT granule IO bytes saved by storage index           0 

È possibile controllare alcune o tutte queste statistiche dopo l'esecuzione di una query per verificare l'efficacia della query, come in:

SQL> SELECT n.name, round(s.value/1024/1024) 
FROM v$mystat s, v$statname n
WHERE s.statistic# IN (462,463)
AND s.statistic# = n.statistic#;

cell XT granule bytes requested for predicate offload  32768
cell interconnect bytes returned by XT smart scan   32

Cinque statistiche offset aggregazione

Le statistiche riportate di seguito consentono di analizzare le prestazioni dell'offload dell'aggregazione.

  • gruppo vettoriale per operazioni inviate alla cella

    Numero di volte in cui è possibile scaricare le aggregazioni nella cella.

  • gruppo vettoriale per operazioni non inviate alla cella a causa della cardinalità

    Numero di scansioni non scaricate a causa di wireframe di grandi dimensioni.

  • Raggruppa vettori per righe elaborate nella cella

    Il numero di righe aggregate nella cella.

  • gruppo vettoriale per righe restituite dalla cella

    Numero di righe aggregate restituite dalla cella.

  • vector group per rowset elaborati nella cella

    Numero di set di righe aggregati nella cella.

È possibile esaminare queste statistiche eseguendo le query come indicato di seguito.

SQL> SELECT count(*) FROM bdsql_parq.web_sales;

  COUNT(*)
----------
 287301291

SQL> SELECT substr(n.name, 0,60) name, u.value
FROM v$statname n, v$mystat u
WHERE ((n.name LIKE 'key vector%') OR
       (n.name LIKE 'vector group by%') OR
       (n.name LIKE 'vector encoded%') OR
       (n.name LIKE '%XT%') OR
       (n.name LIKE 'IM %' AND n.name NOT LIKE '%spare%'))
      AND u.sid=userenv('SID')
      AND n.STATISTIC# = u.STATISTIC#
      AND u.value > 0;


NAME                                                      VALUE
-----------------------------------------------------     -----
cell XT granules requested for predicate offload          808 
cell XT granule bytes requested for predicate offload     2.5833E+10
cell interconnect bytes returned by XT smart scan         6903552 
vector group by operations sent to cell                   1
vector group by rows processed on cell                    287301291
vector group by rows returned by cell                     808

Nove statistiche vettoriali chiave

Le seguenti statistiche consentono di analizzare l'efficacia dei vettori chiave inviati alla cella.

  • vettori chiave inviati alla cella

    Numero di vettori chiave scaricati nella cella.

  • vettore chiave filtrato sulla cella

    Numero di righe filtrate da un vettore chiave nella cella.

  • vettore della chiave esaminato nella cella

    Numero di righe sottoposte a test da un vettore chiave nella cella.

  • righe vettoriali delle chiavi elaborate dal valore

    Il numero di chiavi di join elaborate utilizzando il relativo valore.

  • righe vettoriali delle chiavi elaborate dal codice

    Numero di chiavi di join elaborate utilizzando il codice del dizionario.

  • righe vettoriali delle chiavi filtrate

    Numero di chiavi di join ignorate a causa dei bit saltati.

  • serializzazioni vettoriali chiave in modalità lite per cella

    Numero di volte in cui un vettore chiave non è stato codificato a causa del formato o delle dimensioni.

  • vettori chiave inviati alla cella in modalità lite a causa della quota

    Numero di vettori chiave scaricati nella cella per l'applicazione di filtri non esatti a causa della quota di metadati di 1 MB.

  • efiltri vettoriali di chiavi creati

    Un vettore chiave non è stato inviato a una cella, ma è stato inviato un filtro efiltro (simile a un filtro Bloom).

È possibile esaminare queste statistiche eseguendo le query come indicato di seguito.

SELECT substr(n.name, 0,60) name, u.value
FROM v$statname n, v$mystat u
WHERE ((n.name LIKE 'key vector%') OR
       (n.name LIKE 'vector group by%') OR
       (n.name LIKE 'vector encoded%') OR
       (n.name LIKE '%XT%'))
      AND u.sid=userenv('SID')
      AND n.STATISTIC# = u.STATISTIC#


NAME                                                      VALUE
-----------------------------------------------------     -----
cell XT granules requested for predicate offload          250 
cell XT granule bytes requested for predicate offload     61,112,831,993
cell interconnect bytes returned by XT smart scan         193,282,128 
key vector rows processed by value                        14,156,958
key vector rows filtered                                  9,620,606
key vector filtered on cell                               273,144,333
key vector probed on cell                                 287,301,291
key vectors sent to cell                                  1
key vectors sent to cell in lite mode due to quota        1
key vector serializations in lite mode for cell           1
key vector efilters created                               1
Suggerimento

Il blog Big Data SQL Quick Start, pubblicato in The Data Warehouse Insider , mostra come utilizzare queste statistiche per analizzare le prestazioni di Big Data SQL. Cloud SQL e Big Data SQL condividono la stessa tecnologia di base, quindi si applicano le stesse regole di ottimizzazione. Vedere la Parte 2, la Parte 7 e la Parte 10.