My SQL Server Machine has 6GB of RAM but the database size is 20GB. The Database is mainly an events log, clustered-indexed by time.
The clients are mostly interested in the latest data. They want it to be super fast when querying these latest data.
As SQL Server loads itself into server memory, is there a way to instruct SQL to pre-load only the latest data into memory?
Just issue a query that retrieves that data. But most likely, that will actually wind up doing more harm than good. You really just want to let the data fault in as it is needed.
Tune the queries and the indexes so that everything performs in an optimal fashion. That would be the most important thing you can do. If you have optimized queries, you should be fine for memory management. If your queries are doing scans where they could do seeks, you're going to see memory get flushed on every query and performance will stink.