• The max server memory setting controls the buffer pool. That's all of the caches (buffer pool, plan cache, etc) plus the query workspace memory. SQL can and does take memory outside of the buffer pool, usually a small amount, for the thread stacks, backup buffers, CLR memory, linked servers and a couple other things. This memory is almost always vastly smaller than the buffer pool.

    Again though, if SQL is using too much memory, reduce the value for max server memory slightly.

    Gail Shaw
    Microsoft Certified Master: SQL Server, MVP, M.Sc (Comp Sci)
    SQL In The Wild: Discussions on DB performance with occasional diversions into recoverability

    We walk in the dark places no others will enter
    We stand on the bridge and no one may pass