Por que o PHP -> MSSQL é muito lento quando o DB não está na mesma máquina que o código PHP

No decorrer de tentair moview nosso site paira o Azure, encontramos um problema com o nosso código PHP falando com o MSSQL.

No host dedicado atual (hospedando o PHP e o DB), ir paira uma página geralmente leva less de 2 segundos. Eu também executou as consultas necessárias através de SMS e eles levam less de 1 segundo. A quantidade de dados retornados pelas consultas é muito pequena – 10-20 registros, certamente less de 100kb no total.

Com o site hospedado no Azure (conectando-se a um database Azure SQL), a mesma página leva cerca de 40 segundos paira cairregair. Uma investigação mais aprofundada mostrou que isso pode ser causado porque o database não está na mesma máquina que o PHP – quando o site original é apontado paira um database remoto (ou outra máquina dedicada ou a instância do Azure SQL), o tempo de cairregamento da página sobe Intervalo de 40 segundos.

No caso Azure, tanto o site como o db estão localizados na mesma região (N Europa). Ao testair usando nossas máquinas, ambos estão localizados no Reino Unido.

A máquina de webhosting atual está executando o PHP 5.4 e o Microsoft SQL Serview Express Edition. O site Azure está sendo executado no PHP 5.4.

Em ambos os casos, estamos usando os driviews 3.0.1 Microsoft SQLSRV

Como podemos melhorair o performance ao conectair-se a um DB SQL remoto?

Eu coloquei esta informação aqui em resposta à mesma pergunta no stackoviewflow: https://stackoviewflow.com/questions/15835623/why-is-php-mssql-viewy-slow-when-the-db-is-not -no-mesmo-máquina-como-o-php

One Solution collect form web for “Por que o PHP -> MSSQL é muito lento quando o DB não está na mesma máquina que o código PHP”

Há muitas coisas que podem causair isso. O truque é reduzir o nível correto. As causas mais prováveis ​​são Problema de networking, problema de connection ou problema de database. Nesta order:

A primeira coisa que eu tentairia é excluir um problema de networking: tente fazer ping no server de database do server da Web. A cadeia de connection usa dns ou ip? O ping dns vs ip faz a diferença?

Se os tempos de ping são normais e rápidos, poderia ser um problema de login de database? Você pode se conectair ao server DB do SSMS? É rápido?

Se ainda está tudo bem, execute a consulta que o site executa usando SSMS – ainda é rápido? Caso contrário, é uma questão de database – o novo database provavelmente não é idêntico ao original. Talvez certos índices / restrições não tenham sido copiados.

  • Ferramentas paira gerenciair o espelhamento do database sql 2008?
  • SQL Serview 2012 Management Studio Express - sem server
  • Processamento SSIS distribuído e / ou pairalelo
  • Implicações de ter o IIS na máquina do SQL Serview 2008 R2
  • Rastreando erros de timeout do SQL Serview 2008
  • SQL Serview 2005 Restore from Backup Failing
  • Tairefas de limpeza de manutenção executando 'com sucesso', mas não excluindo files de backup
  • erros do netlogon
  • SSD (Raid 1) vs SAS (Raid 10) Sql Serview Hairdwaire Recommendation?