Suponha que eu tenho uma caixa do Windows Server de 32 bits que opera vários aplicativos de servidor junto com o SQL Server, com um uso de RAM de cerca de 2 GB nos horários de pico.
Quais seriam as vantagens de atualizar o sistema operacional Windows Server e o SQL Server para as versões correspondentes de 64 bits, com os aplicativos de servidor permanecendo em 32 bits? As versões de 64 bits permitem acesso a mais de 4 GB de RAM, mas como 4 GB não estão sendo totalmente utilizados, isso tornaria a atualização irrelevante?
Versões: Windows Server 2008 R2, SQL Server 2008 R2 Datacenter Edition
obrigado
fonte
Como já observado, você já está usando um sistema operacional de 64 bits. Há duas vantagens de mudar para uma versão de 64 bits do SQL Server e uma desvantagem.
A única desvantagem é que a versão de 64 bits do SQL Server usará ponteiros de 64 bits. Isso significa que os ponteiros ocuparão o dobro da memória, consumirão o dobro da largura de banda da memória e assim por diante. Provavelmente isso é insignificante, mas é uma desvantagem. É parcialmente compensado pelo fato de que a mudança para um aplicativo de 64 bits permitirá reduzir a sobrecarga da camada de compatibilidade que os aplicativos de 32 bits precisam usar para acessar as funções de um sistema operacional de 64 bits.
A principal vantagem é que inúmeras melhorias significativas foram feitas no conjunto de instruções da CPU ao longo do tempo. Alguns deles foram feitos juntamente com a alteração para 64 bits e outros foram feitos anteriormente.
Mas mesmo para as feitas anteriormente, a compilação de 32 bits precisa lidar com CPUs que não possuem esses recursos e evitar o incômodo de detecção e alternância entre várias instâncias, simplesmente não as utiliza mesmo onde estão presentes. Por exemplo, as CPUs de 64 bits devem ter SSE2, mas as de 32 bits podem não ter. Portanto, a maioria dos códigos de 32 bits simplesmente não se incomoda em verificar e não assume SSE2. O código de 64 bits garante a presença de instruções SSE2 e, portanto, será usado se for a melhor opção.
O maior deles é o aumento no número de registros de uso geral nomeados de 8 para 16. O número de registros XMM de 128 bits também foi dobrado, de 8 para 16.
Além disso, um processo de 64 bits pode fazer uso de grandes quantidades de memória virtual. Isso é especialmente importante nos processos que acessam grandes quantidades de dados estruturados no disco. E, é claro, eles podem usar operações inteiras de 64 bits que tendem a melhorar o desempenho da criptografia, compactação e até algumas operações do sistema de arquivos em grandes sistemas de arquivos.
fonte
/arch:SSE2
opção para código de 32 bits, equivalente a gcc / clang / ICC-msse2
. Eu acho que o SQL não tem muitos loops vetorizados SIMD, mas copiar pequenas estruturas com cargas / lojas SIMD de 16 bytes é bom.__fastcall
passa os argumentos nos registradores para muitas funções. A convenção de chamada de 32 bits do Linux está puramente na pilha, por isso é uma porcaria para pequenas funções que não estão alinhadas.Fundamentalmente: Sim. Supondo que você nunca faça atualizações com apenas 4 bits - não há certeza de que exista um SQL Server de 32 bits mais recente que 2008.
Problemas com a sua pergunta: "As versões de 64 bits permitem acesso a mais de 4 GB de RAM" - faça com que 3 gb;) não 4. 1 gb é sempre reservado.
fonte
Problema potencial: as bibliotecas DLL de UDFs (CLR) definidas pelo usuário exigirão suas versões de 64 bits.
Se você estiver usando uma biblioteca de funções definidas pelo usuário do CLR , ela se tornará incompatível com os bits. As DLLs de 32 bits geralmente não podem ser usadas no software de 64 bits e vice-versa. Se não conseguir obter a versão de 64 bits de alguma biblioteca UDF usada, você perderá essa extensão específica.
Basicamente, é o mesmo problema que a atualização de qualquer software de 32 bits com seus complementos para a versão de 64 bits. Você também precisa mudar todos os complementos para as versões de 64 bits. Geralmente é fácil, mas o problema é descontinuado onde as substituições não estão disponíveis.
fonte
Atuação!
Já existem várias respostas técnicas aqui, mas sem ser muito técnico e, dependendo do seu aplicativo, você deverá ver uma atualização de desempenho.
As peças principais são:
https://teratrax.com/sql-server-64-bit/
Os resultados mais dramáticos que vi ao passar do SQL Server de 32 bits para 64 bits (este era o SQL Server 2005) foram cerca de 40% de aumento de velocidade no aplicativo principal de um cliente. Tudo o que fizemos foi instalar o SQL Server de 64 bits, tudo o mais foi o mesmo! Esse foi um grande aumento de desempenho no mundo real.
fonte
Você pode ter um melhor desempenho multitarefa, especialmente em programas com multithreading pesado embutido. Além disso, você pode instalar mais ram com sistemas operacionais de 64 bits. Mas faça isso apenas se o processador suportar instruções de 64 bits.
fonte