Wenn die Daten in den RAM passen, ist data.table schneller. Wenn Sie ein Beispiel geben, wird wahrscheinlich schnell klar, dass Sie data.table schlecht verwenden. Haben Sie die "Do's and Don'ts" im data.table-Wiki gelesen ?
SQL hat eine untere Grenze, weil es ein Zeilenspeicher ist. Wenn die Daten in den RAM passen (und 64 Bit ist ziemlich viel), dann ist data.table schneller, nicht nur weil sie sich im RAM befinden, sondern weil die Spalten im Speicher zusammenhängend sind (Minimierung der Seitenabrufe vom RAM nach L2 für Spaltenoperationen). Verwenden Sie data.table richtig und es sollte schneller sein als die Untergrenze von SQL. Dies wird in FAQ 3.1 erklärt. Wenn Sie mit data.table langsamer sehen, dann sind die Chancen sehr hoch, dass Sie data.table falsch verwenden (oder es gibt einen Leistungsfehler, den wir beheben müssen). Posten Sie also bitte einige Tests, nachdem Sie das data.table-Wiki gelesen haben.