INTEGRA?ÃO COM E COMMERCE
eu faco isto aqui tambem , porem meu banco na locaweb esta lento de muitas vezes parar meu site, voce amigo FUTURA tem alguma ideia de que posso estar fazendo para melhorar isto
Bem a explicação é longa, mas vamos lá:
O banco de dados estando acessÃvel para a internet, pode ser conectado de qualquer lugar do mundo, bastando setar os parâmetros para essa comunicação. Por estarem abertos e poderem ser acessados de qualquer lugar, o nÃvel de vulnerabilidade é gigantesco pois um atacante determinado não levaria mais que algumas horas para conseguir um acesso e fazer um estrago. Outro problema muito sério é o desempenho. Pacotes SQL são binários e costumam carregar um monte de informação extra além dos dados, ainda mais se para leitura você estiver usando algo que não seja DataReader, como é o caso da maioria que tenho visto aqui. Usar um DataAdapter e DataTable para ler dados é inerentemente ter diminuÃda a performance da sua aplicação, pois são objetos muito mais pesados, devido a quantidade de informação extra além dos dados que ele disponibiliza, como descrição e tipagem de tabelas, informações do produto cartesiano, colunas envolvidas e etc. Essa é uma das razões de fazer uma consulta à um banco de dados remoto ser muito mais lenta que em um banco de dados local. Outro fator é a distância e rota de rede. Você pode verificar a rota sendo feita da sua máquina até o servidor, usando o comando tracert, onde você pode verificar todos os nós de rede que você vai passar até o SQL Server. Então você deve contar o tempo do SQL Server executar a sua query, somado ao tempo que vai levar para o pacote inteiro passar por todos esses nós.
Porque esse problema é atenuado exponencialmente em uma WebAPI? Em primeiro lugar pelo que está sendo trafegado. Usando uma WebAPI, você vai trafegar apenas os dados desejados. Informações sobre colunas, produto cartesiano e etc, são completamente ignoradas, mas podem ser verificadas quando desejado. Em segundo lugar, as informações trafegam sob o protocolo HTTP, em formato de texto(seja XML ou JSON), o que é muito mais otimizado em todos os nós de rede que vão trafegar pois as redes em geral são configuradas para dar preferência à esse tipo de tráfego em relação à dados binários. Em terceiro lugar, a segurança. Existem vários métodos muito eficazes de se fazer uma WebAPI ficar muito mais segura que um banco de dados aberto na rede, como o uso de HTTPS, certificados de segurança, encriptação, entre outros.
Criar uma WebAPI é muito simples. Esse tutorial, explica passo à passo como fazer, é interessante ainda que a tÃtulo de curiosidade.
O banco de dados estando acessÃvel para a internet, pode ser conectado de qualquer lugar do mundo, bastando setar os parâmetros para essa comunicação. Por estarem abertos e poderem ser acessados de qualquer lugar, o nÃvel de vulnerabilidade é gigantesco pois um atacante determinado não levaria mais que algumas horas para conseguir um acesso e fazer um estrago. Outro problema muito sério é o desempenho. Pacotes SQL são binários e costumam carregar um monte de informação extra além dos dados, ainda mais se para leitura você estiver usando algo que não seja DataReader, como é o caso da maioria que tenho visto aqui. Usar um DataAdapter e DataTable para ler dados é inerentemente ter diminuÃda a performance da sua aplicação, pois são objetos muito mais pesados, devido a quantidade de informação extra além dos dados que ele disponibiliza, como descrição e tipagem de tabelas, informações do produto cartesiano, colunas envolvidas e etc. Essa é uma das razões de fazer uma consulta à um banco de dados remoto ser muito mais lenta que em um banco de dados local. Outro fator é a distância e rota de rede. Você pode verificar a rota sendo feita da sua máquina até o servidor, usando o comando tracert, onde você pode verificar todos os nós de rede que você vai passar até o SQL Server. Então você deve contar o tempo do SQL Server executar a sua query, somado ao tempo que vai levar para o pacote inteiro passar por todos esses nós.
Porque esse problema é atenuado exponencialmente em uma WebAPI? Em primeiro lugar pelo que está sendo trafegado. Usando uma WebAPI, você vai trafegar apenas os dados desejados. Informações sobre colunas, produto cartesiano e etc, são completamente ignoradas, mas podem ser verificadas quando desejado. Em segundo lugar, as informações trafegam sob o protocolo HTTP, em formato de texto(seja XML ou JSON), o que é muito mais otimizado em todos os nós de rede que vão trafegar pois as redes em geral são configuradas para dar preferência à esse tipo de tráfego em relação à dados binários. Em terceiro lugar, a segurança. Existem vários métodos muito eficazes de se fazer uma WebAPI ficar muito mais segura que um banco de dados aberto na rede, como o uso de HTTPS, certificados de segurança, encriptação, entre outros.
Criar uma WebAPI é muito simples. Esse tutorial, explica passo à passo como fazer, é interessante ainda que a tÃtulo de curiosidade.
Tópico encerrado , respostas não são mais permitidas