Se i dati rientrano nella RAM, data.table è più veloce. Se fornisci un esempio, probabilmente diventerà evidente, rapidamente, che stai usando data.table male. Hai letto le "cose da fare e da non fare" sul data.table wiki ?
SQL ha un limite inferiore perché è un archivio di righe. Se i dati si adattano alla RAM (e 64 bit sono un bel po'), data.table è più veloce non solo perché si trova nella RAM ma perché le colonne sono contigue nella memoria (riducendo al minimo il recupero delle pagine dalla RAM a L2 per le operazioni sulle colonne). Usa data.table correttamente e dovrebbe essere più veloce del limite inferiore di SQL. Questo è spiegato nella FAQ 3.1. Se visualizzi più lentamente data.table, è molto probabile che tu stia utilizzando data.table in modo errato (o c'è un bug di prestazioni che dobbiamo correggere). Quindi, per favore, posta alcuni test, dopo aver letto il wiki data.table.