Scusa per non essere stato chiaro.
ho creato una struttura dati che contiene molte colonne( header1,header2,header3.....header56):quando inserisco un nuovo record questo non conterrà tutti gli header ma al massimo 10 su diciamo 56 quindi avrò una riga con parecchi campi vuoti(NULL).

La mia domanda era:si perde in efficenza nel definire una tabella con così tanti campi la maggiorparte dei quali saranno vuoti o è meglio creare tante tabelle in cui memorizzare i valori e completamente piena?

Ti dico questo perchè stò realizzando una applicazione che raccoglie dati inviati in formato XML e li deve immagazzinare in una tabella.
Questa tabella contiene un campo datetime pari al tempo in cui il file XML è stato inviato e 56 intestazioni corrisondenti al nome del dato che deve essere immagazzinato:
esempio alle ore 12:00 viene fatto un upload XML che contine i valori
articolo1 3 pezzi,articolo 4 5 pezzi,etc e i possibili articolo sono 56. Quindi io avrò un record con data le 12:00 alcuni valori e tutti NULL.

Forse è meglio creare una tabella per ogni articolo?

Spero di essere stato chiaro.