AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / dba / Perguntas / 35292
Accepted
Jon of All Trades
Jon of All Trades
Asked: 2013-02-23 15:25:13 +0800 CST2013-02-23 15:25:13 +0800 CST 2013-02-23 15:25:13 +0800 CST

Os dados recuperados do SQL Server são compactados para transmissão?

  • 772

Os dados recuperados do Microsoft SQL Server são compactados? Se isso for controlado pela string de conexão, existe alguma maneira simples de saber se algum aplicativo específico está usando?

Estou examinando as ferramentas de análise e o volume de dados pode levar minutos para ser transmitido pela nossa rede. Estou me perguntando se devo esperar um aumento de desempenho se extrairmos dados de um armazenamento de dados compactados no mesmo servidor remoto.

Já que estamos no assunto, estou curioso: os dados são transmitidos em binário ou ASCII? Por exemplo, se o valor 12345for consultado de uma INTcoluna, ele é transmitido como os cinco bytes 0x31, 0x32, 0x33, 0x34, 0x35; os dois bytes necessários para o valor; ou quatro bytes conforme necessário para a coluna?

Para ser claro, entendo que existem opções em relação ao armazenamento de dados com compactação e backup. Estou perguntando sobre como os dados são transmitidos.

sql-server-2008 compression
  • 4 4 respostas
  • 11068 Views

4 respostas

  • Voted
  1. Best Answer
    Aaron Bertrand
    2013-02-24T07:06:47+08:002013-02-24T07:06:47+08:00

    Os dados que você deseja compactar são os enviados pela rede via TDS . Há alguma compactação menor aqui, mas nem de longe o tipo de compactação que você obtém com compactação de página/linha, compactação de backup ou compactação ColumnStore.

    Já foi pedido antes:

    http://connect.microsoft.com/SQLServer/feedback/details/412131/enable-network-compression-compress-tds-stream

    http://connect.microsoft.com/SQLServer/feedback/details/377479/wan-compression-option

    Os itens ainda estão abertos, então talvez haja alguma esperança. Não há como controlar isso por meio da string de conexão que eu já vi.

    Entretanto, existem alguns produtos que afirmam fazer isso, por exemplo

    http://www.nitrosphere.com/products/nitroaccelerator/

    http://toonel.net/tcpany.htm

    Você também pode potencialmente configurar a rede entre o SQL Server e os servidores de aplicativos para oferecer suporte à compactação (e outras coisas como criptografia), mas você está além do meu escopo aqui e não tenho certeza se isso seria suportado por todos os recursos do SQL Servidor.

    E para ser honesto, não estou convencido de que este é o lugar que você deseja focar na otimização. A compactação desse fluxo pode, na verdade, desacelerar as coisas e superar os benefícios de enviar menos bytes. Prefiro gastar dinheiro em uma melhor conectividade de rede entre o servidor e o (s) cliente (s) do que gastar tempo investindo nesse tipo de trabalho e testando se ele traz algum benefício real - e não ser capaz de fazer isso até mais tarde. De 10/100 a giga fibra tem um impacto conhecido e previsível na E/S da rede.


    Não tenho certeza sobre o formato dos bytes enviados pela rede; você terá que configurar algum tipo de farejador de pacotes para isso (ou talvez alguém já tenha feito isso e entre em contato).

    Quanto ao impacto da compactação, a menos que você esteja no Fusion-IO ou em outras soluções do tipo SSD de ponta, é quase certo que você esteja atualmente vinculado a E/S e não a CPU. Portanto, enquanto houver sobrecarga de CPU, você verá um desempenho mais rápido com a compactação ativada (mas isso não alterará o desempenho da rede , pois os dados são descompactados antes da transmissão). Eu digo que não sabendo nada sobre seus servidores, seu aplicativo, seus dados ou seus padrões de uso - você pode muito bem ter um caso extremo em que a compactação realmente prejudica o desempenho ou em que os dados simplesmente não são bons candidatos para boas taxas de compactação.

    • 19
  2. Ben Gribaudo
    2017-10-25T08:09:17+08:002017-10-25T08:09:17+08:00

    Os dados recuperados do Microsoft SQL Server são compactados? Se isso for controlado pela string de conexão, existe alguma maneira simples de saber se algum aplicativo específico está usando?

    Tecnicamente, os resultados podem ser ligeiramente compactados .

    Tabular Data Stream (TDS) 7.3B — primeiro suportado pelo SQL Server 2008 R2 — introduziu algo chamado compactação de bitmap nulo, que permite que linhas contendo vários nulos sejam transmitidas usando menos bytes do que normalmente são exigidos por valores de campo nulos.

    O servidor pode misturar linhas regulares com linhas compactadas de bitmap nulo à sua escolha enquanto envia resultados. O cliente não tem controle sobre isso, portanto, nenhuma opção de configuração relevante do lado do cliente está disponível.

    O bitmap nulo é a única forma de compactação atualmente suportada pelo TDS. Se uma linha não for um bitmap nulo compactado, ela será enviada descompactada.

    Já que estamos no assunto, estou curioso: os dados são transmitidos em binário ou ASCII?

    As colunas com tipos de dados não textuais são transmitidas usando um formato binário definido pelo protocolo TDS .

    • 5
  3. jocull
    2017-10-24T06:12:17+08:002017-10-24T06:12:17+08:00

    Conforme mencionado em outro lugar , para contornar esse problema, considere configurar uma VPN e ativar a compactação.

    Como outros já disseram, não há compactação incorporada ao protocolo TDS do SQL Server. Também vale dizer que, por padrão, também não há criptografia. Para habilitar a criptografia, você deve usar certificados e especificá-los nas strings de conexão.

    A solução mais fácil para resolver ambos os problemas é abrir um túnel VPN com criptografia e compactação ativadas. O Microsoft PPTP simples resolve ambos os problemas e é fácil de configurar.

    • 2
  4. Ishwar
    2013-02-27T16:21:54+08:002013-02-27T16:21:54+08:00

    Por que não configurar uma instância SQL local que armazena em cache os dados relevantes e sincroniza a cada n horas? Outra coisa a se observar é pré-computar os cubos e ter um botão 'obter detalhes' quando você chegar a uma célula de resumo. Isso buscaria apenas as linhas detalhadas relevantes.

    • 1

relate perguntas

  • Melhores práticas para conectar bancos de dados que estão em diferentes regiões geográficas

  • Quais são as principais causas de deadlocks e podem ser evitadas?

  • Quanto "Padding" coloco em meus índices?

  • Existe um processo do tipo "práticas recomendadas" para os desenvolvedores seguirem para alterações no banco de dados?

  • Downgrade do SQL Server 2008 para 2005

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como fazer a saída do sqlplus aparecer em uma linha?

    • 3 respostas
  • Marko Smith

    Selecione qual tem data máxima ou data mais recente

    • 3 respostas
  • Marko Smith

    Como faço para listar todos os esquemas no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Conceder acesso a todas as tabelas para um usuário

    • 5 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Stéphane Como faço para listar todos os esquemas no PostgreSQL? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    pedrosanta Listar os privilégios do banco de dados usando o psql 2011-08-04 11:01:21 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve