Domanda

Im cercando di riscrivere il codice che aggiorna una tabella su un V14 di database Sybase IQ che fa il seguente:

  1. seleziona tutti i record della tabella ed estrae alcuni dati nel file
  2. Aggiornamenti l'estratto di presentare bandiera per ogni record della tabella

Al momento, una volta che un record viene scritto in un file, la sua bandiera di estrazione viene aggiornato. Attualmente ci sono 40 000 record nella tabella e il processo utilizza 40GB di spazio temporaneo del database. Ogni record della tabella in questione contiene 60 campi e alla maggior parte delle colonne contiene 120 caratteri.

è il server di database di creare una nuova versione di dati per la tabella per ogni record nella tabella e col passare del tempo, e quindi si crea una valanga di dati temporanei sul server di database con i conti per il 40GB utilizzato? Sarebbe il metodo migliore per elaborare i dati per estrarre prima i dati, scrivere su file, quindi eseguire un aggiornamento di massa. Dal momento che è la mia comprensione che Sybase IQ è generalmente utilizzato in un'arena im pensando che il database potrebbe essere ottimizzato per gli inserti e le eliminazioni e seleziona ma esegue male su aggiornamenti? Sarebbe il server di database Sybase IQ eseguire la stessa su HP-UX e Windows Server 2003.

È stato utile?

Soluzione

In realtà Sybase IQ è ottimizzato per legge (si pensi OLAP) e non tanto per l'attività OLTP Durante il mio test ho trovato ottenere i dati in Sybase IQ preso il più lungo

Il modo più veloce per caricare i dati sarebbe quella di utilizzare il LOAD TABLE comando di caricamento di massa

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top