Om data får plats i RAM är data.table snabbare. Om du ger ett exempel kommer det förmodligen snabbt att bli uppenbart att du använder data.table dåligt. Har du läst "do's and don'ts" på data.table-wikin ?
SQL har en nedre gräns eftersom det är ett radlager. Om data får plats i RAM (och 64 bitar är en hel del) så är data.table snabbare inte bara för att det finns i RAM utan för att kolumner är sammanhängande i minnet (minimerar sidhämtningar från RAM till L2 för kolumnoperationer). Använd data.table korrekt och det bör vara snabbare än SQL:s nedre gräns. Detta förklaras i FAQ 3.1. Om du ser långsammare med data.table, är chansen mycket stor att du använder data.table felaktigt (eller så finns det en prestandabugg som vi måste åtgärda). Så snälla posta några tester efter att ha läst data.table-wikin.