Os aplicativos cliente se conectam a uma instância do Microsoft SQL Server 2005 para trabalhar com um banco de dados SQL Server. Cada instância do SQL Server é composta por um conjunto distinto de serviços que podem ter configurações exclusivas. A estrutura do diretório, a estrutura do registro e o nome do serviço refletem o nome da instância específica que você identifica durante a instalação.
Uma instância é a instância padrão, sem nome, ou é uma instância nomeada. Quando o SQL Server 2005 está instalado na instância padrão, ele não exige que um cliente especifique o nome da instância para fazer uma conexão. O cliente só precisa saber o nome do servidor.
Uma instância nomeada é identificada pelo nome de rede do computador mais o nome da instância que você especifica durante a instalação. O cliente deve especificar o nome do servidor e o nome da instância ao se conectar.
Por padrão, o SQL Server é instalado na instância padrão, a menos que você especifique um nome de instância. O SQL Server Express, no entanto, sempre é instalado em uma instância nomeada, a menos que você force uma instalação padrão durante a instalação.
Além disso, você pode instalar apenas um padrão (instância sem nome), mas pode instalar várias instâncias nomeadas.
Muitos softwares de terceiros geralmente usam uma instância nomeada padrão, embora possam não mencioná-la. O motivo é claro nas respostas acima, as versões padrão instalam uma instância sem nome por padrão, enquanto a versão Express instala uma instância nomeada por padrão.
É importante saber sobre a diferença dessa perspectiva porque se você tiver 2 ou 3 servidores de banco de dados em execução, talvez nunca se conecte à versão correta. Porque o software de terceiros está procurando a instância padrão enquanto você pensa que é a instância SQLEXPRESS à qual ele está tentando se conectar. Isso pode aumentar significativamente o tempo de solução de problemas, se você não souber como se conectar a uma instância nomeada versus não nomeada.
Portanto, se você deseja se conectar à Versão Nomeada ou Sem Nome, use as diretrizes a seguir.
MY-MACHINE-NAME\SQLEXPRESS /* named version - correct */
MY-MACHINE-NAME /* unnamed version (default instance) - correct */
MY-MACHINE-NAME\MSSQLSERVER /* unnamed version (default instance) - Wrong */
Observe que mesmo que uma instância padrão tenha um nome, ela não pode ser referenciada por seu nome!
Ainda outra diferença prática: SQL2005 e superior permitem que você instale 16 ou mais instâncias por sistema. Como o licenciamento é por CPU física , por instalação do SQL Server (e não por instância!), isso significa que você pode executar até 16 instâncias do SQL Server 2005 sem pagar um centavo a mais do que já pagou.
Dado que as licenças de CPU podem custar até US$ 15.000 (!) por soquete, isso é obrigatório para grandes instalações com, digamos, 16 núcleos e 256 GB de memória.
Você também pode limitar a memória e atribuir limite de uso do processador por instância. Você também pode criar uma instância para aplicativos escritos pelo fornecedor que 'precisam' de privilégios de administrador do sistema, para não colocar seus outros aplicativos em risco.
Uma das melhores razões é a separação de bancos de dados. Se você estiver desenvolvendo seu próprio aplicativo e empacotando o SQL Express com ele, faz sentido instalá-lo em sua própria instância. Além disso, dando ao usuário a opção de especificar uma instalação SQL existente, se preferir.
Se você tiver um banco de dados ao qual é essencial que ninguém mais tenha acesso, ele poderá entrar em sua própria instância com uma autorização de segurança muito limitada. Digamos que seja o seu banco de dados de produção e, em seguida, seja replicado para o banco de dados de relatórios no mesmo servidor**, que é somente leitura para pessoas. É menos provável que, por erro de usuário (admin), os usuários acidentalmente obtenham acesso ao banco de dados de produção, limitando quem é realmente capaz de atualizar os grupos de segurança na instância de produção para apenas algumas pessoas.
** A boa prática diz para tornar o servidor de relatórios em uma máquina separada, mas estou fazendo isso apenas como exemplo.
De acordo com a Microsoft sobre nomeado vs padrão
Além disso, você pode instalar apenas um padrão (instância sem nome), mas pode instalar várias instâncias nomeadas.
Muitos softwares de terceiros geralmente usam uma instância nomeada padrão, embora possam não mencioná-la. O motivo é claro nas respostas acima, as versões padrão instalam uma instância sem nome por padrão, enquanto a versão Express instala uma instância nomeada por padrão.
É importante saber sobre a diferença dessa perspectiva porque se você tiver 2 ou 3 servidores de banco de dados em execução, talvez nunca se conecte à versão correta. Porque o software de terceiros está procurando a instância padrão enquanto você pensa que é a instância SQLEXPRESS à qual ele está tentando se conectar. Isso pode aumentar significativamente o tempo de solução de problemas, se você não souber como se conectar a uma instância nomeada versus não nomeada.
Portanto, se você deseja se conectar à Versão Nomeada ou Sem Nome, use as diretrizes a seguir.
Observe que mesmo que uma instância padrão tenha um nome, ela não pode ser referenciada por seu nome!
Ainda outra diferença prática: SQL2005 e superior permitem que você instale 16 ou mais instâncias por sistema. Como o licenciamento é por CPU física , por instalação do SQL Server (e não por instância!), isso significa que você pode executar até 16 instâncias do SQL Server 2005 sem pagar um centavo a mais do que já pagou.
Dado que as licenças de CPU podem custar até US$ 15.000 (!) por soquete, isso é obrigatório para grandes instalações com, digamos, 16 núcleos e 256 GB de memória.
Além da explicação que Brett G postou, aqui estão algumas razões para usá-los:
Todos os tipos de razões para usá-los. Mas não quer dizer que seja sempre uma boa ideia :P
Você também pode limitar a memória e atribuir limite de uso do processador por instância. Você também pode criar uma instância para aplicativos escritos pelo fornecedor que 'precisam' de privilégios de administrador do sistema, para não colocar seus outros aplicativos em risco.
Uma das melhores razões é a separação de bancos de dados. Se você estiver desenvolvendo seu próprio aplicativo e empacotando o SQL Express com ele, faz sentido instalá-lo em sua própria instância. Além disso, dando ao usuário a opção de especificar uma instalação SQL existente, se preferir.
Se você tiver um banco de dados ao qual é essencial que ninguém mais tenha acesso, ele poderá entrar em sua própria instância com uma autorização de segurança muito limitada. Digamos que seja o seu banco de dados de produção e, em seguida, seja replicado para o banco de dados de relatórios no mesmo servidor**, que é somente leitura para pessoas. É menos provável que, por erro de usuário (admin), os usuários acidentalmente obtenham acesso ao banco de dados de produção, limitando quem é realmente capaz de atualizar os grupos de segurança na instância de produção para apenas algumas pessoas.
** A boa prática diz para tornar o servidor de relatórios em uma máquina separada, mas estou fazendo isso apenas como exemplo.