Ok I found something much easier to use.
NHibernate Profiler (@ http://nhprof.com)
I just included its appender dll, called the init command @ 'boot' and now I can see all queries in detail.
Also, I found my problem:
record.Pulses.Where(p => p.TimePassed <= maxTimePassed).OrderByDescending(p => p.Id).FirstOrDefault()
This generates a query that fetches ALL pulses for the player (player being the 'record' here) and doesn't do any 'where' filtering @ the sql side.
I replaced this line with:
_dataService.Pulses.Table.Where(p => p.TrackerServerPlayerRecord.Id == record.Id && p.TimePassed <= tp).OrderByDescending(p => p.Id).FirstOrDefault()
And now it DOES do the filtering sql server-side.
Any specific reason why the where on the 'Pulses' (an IList, properly mapped afaik) isn't handled sql server-side,, and the query based on all pulses is?