Sono il processo di pianificazione della migrazione live di un database da 2 TB a tabelle partizionate. Il sistema sta parlando in generale di un archivio di documenti, la maggior parte dello spazio è allocata a LOB tra 50kb e 500kb, con una piccola percentuale nell'intervallo da 500kb a 1MB. Parte della migrazione coinvolgerà i dati BCP dal vecchio al nuovo database.
BCP è l'approccio preferito poiché la divisione attuale / storica nei dati consente di estrarre i dati più vecchi in più fasi (durante periodi più tranquilli) prima di un passaggio finale, riducendo al minimo l'impatto sul sistema live. Il volume di dati e la disponibilità di archiviazione preclude una ricostruzione in situ in uno schema di partizione .
Ho il sospetto che forse ci saranno alcuni miglioramenti delle prestazioni sperimentando KILOBYTES_PER_BATCH anziché ROWS_PER_BATCH, a causa del contenuto BLOB. Nella documentazione BCP viene suggerito che SQL può ottimizzare le operazioni in base a questo valore.
Quello che non riesco a trovare è una guida sulla natura di queste ottimizzazioni o su dove iniziare i miei test. In assenza di suggerimenti, proverò per iniziare brevi tiri ai confini 4/8/16/32 / 64mb.
Probabilmente alcuni vantaggi derivano dalla modifica della dimensione del pacchetto (parametro BCP -a, piuttosto che dall'impostazione a livello di server), ma sono propenso a superare questo valore al massimo 65535 a meno che qualcuno non abbia un approccio più formulaico.