Not sure what your two choices really represent. The actual code in alternative 1 is incorect:
, you probably mean:
If my "probably mean" is what you actually mean, then this:
is exactly the same - the only difference is that you give anyone (including yourself) reading the function prototype a clue as to what the string (and to some extent) argument(s) are referring to.
void SendQuery( std::string Query, Database& db );
There will be absolutely no difference in speed whether you mention the parameter name or not, nor will the compiler produce any different code if you put the same or different names for the parameters in different places where they are mentioned [but it helps us humans that have a more complex associative memory than the compiler to understand that we really mean the same thing if it's called the same thing across different points].