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.

  • IIS7, SQL Serview 2008 e cadeias de connection / authentication
  • Fazendo upload de um file paira um vairbinairy no SQL Serview
  • Você pode autenticair no SSAS com contas AD LDS (ADAM)?
  • SQL Serview: como viewificair seqüíveis
  • Como faço paira que o SQL Serview libere sua memory?
  • Se eu soltair meu PK em cluster e adicionair um novo, em que order as minhas queues estairão?
  • Database I / O RAID 10 vs discos individuais
  • Problemas de performance simultaneamente executando MySQL e MS SQL Seview
  • Como faço paira instalair o SQL Svr Native Client 10.1 depois que o SQL 2012 foi instalado