Base64 or URL-encoding?
Base64 inflates any data by a third (every 3 bytes become 4 characters). SVG is already text, so percent-encoding only the few unsafe characters (<, >, #, quotes) keeps it close to its original size and also gzips better. Use base64 only when a tool insists on it.
When to inline an SVG
Inlining saves an HTTP request, which helps for tiny icons used in CSS. For anything over a few kilobytes, or used on many pages, a separate cached file is better.