You must have got the output after using trace flags in command something like `dbcc traceon(3605, 3004, 3014, 3213, -1)`. If you read the [How It Works: How does SQL Server Backup and Restore select transfer sizes][1] on this TF it says > WARNING: This trace flags should be used under the guidance of Microsoft SQL Server support. They are used in this post for discussion purposes only and may not be supported in future versions. The TF is undocumented so is its output parameters. The `memory limit` is probably calculated internally via code to which a normal Joe do not have information or access. So I would suggest not to waste time on finding how it is calculated. You can focus on MAXTRANSFERSIZE and the BUFFERCOUNT and play around with it. [1]: https://techcommunity.microsoft.com/t5/sql-server-support/how-it-works-how-does-sql-server-backup-and-restore-select/ba-p/315454