Имя базы в запросе

mihail_13
Дата: 01.02.2013 17:52:03
Программа работает с большим количеством баз, но не одновременно, а закончив с одной начинает работать с другой.
Есть ли разница указывать имя базы в запросе перед именем таблицы или использовать use?
miksoft
Дата: 01.02.2013 18:19:35
Практической разницы нет.
Только в случае с use придется лишнюю команду давать, но зато некоторая гибкость приобретается - один и тот же запрос без изменений может с разными базами работать, если у используемых таблиц структура совпадает.
Akina
Дата: 01.02.2013 18:20:41
Использование USE уменьшит трафик (запросы станут короче) и позволит избежать ошибок.
miksoft
Дата: 01.02.2013 18:25:40
Akina
Использование USE уменьшит трафик (запросы станут короче)
Если много баз и часто нужно переключаться, то не факт.
Akina
Дата: 01.02.2013 18:54:53
miksoft
Akina
Использование USE уменьшит трафик (запросы станут короче)
Если много баз и часто нужно переключаться, то не факт.


USE <database> даётся однократно. Если в любом сеансе выполняется один запрос к одной таблице, и потом будет переключение на другую БД - да, будет лишних 4 байта (и, возможно, плюс запрос). А если запросов больше, и таблиц там не одна - уже экономия. К тому же, если использовать мультизапросные процедуры доступа, количество запросов не увеличится.

А для сервера USE <database> - это просто директива изменить каталог по умолчанию для данного соединения в файловой системе сервера.