PDA

View Full Version : [PHP] Carico eccessivo su Apache...


race2
26-02-2004, 12:10
Tramite una pagina PHP faccio un "SELECT" da un "Database Access" con i driver "ODBC di Sistema" su una Macchina Win chiaramente,

succede che se lo faccio in locale estrae tutti i risultati,

se mi connetto da remoto mi estrae solamente i risultati non troppo grandi,
per risultati che comportano l'estrazione di grosse quantita' di dati, il browser mi fa dei REFRESH non indotti da me e per finire non mi visualizza nulla perche' con quei refresh mi fa perdere gli Identificativi e chiavi che uso per le query ... !!!

pensavo alla mole di dati esegerata da inviare a carico di Apache...!!!

non ci sono dei settaggi di Apache per potere inviare PACCHETTI piu' grandi via http in modo che non si sovraccarichi ???

race2
01-03-2004, 15:03
Nulla ???

cn73
02-03-2004, 09:33
Perchè non prevedi n istanze di Apache su cui suddividere in maniera Random le richieste?

cionci
02-03-2004, 09:41
Ma quanto sono grosse queste query ?

race2
02-03-2004, 09:41
Cacchio che risposta ampia !!!

non so come si fa !!!

race2
02-03-2004, 09:43
Originariamente inviato da cionci
Ma quanto sono grosse queste query ?


2000/3000 record da 8 colonne suddivisi in 50 risultati per pagina...(paging)

cionci
02-03-2004, 09:44
Allora non sono tanti...il numero di record che il server DBMS ti da in ouput li limiti con una query SQL o tramite codice ?

race2
02-03-2004, 09:58
con il LIMIT $a,$b sulla query

cionci
02-03-2004, 10:00
Allora credo che sia difficile che il problema dipenda da quello...

Non è che i dati che visualizzi contengono codice HTML o JavaScript ?

race2
02-03-2004, 10:00
mi idmenticavo

ci sono 2 query, 1 per l'estrazione degli articoli 1 per il conteggio del totale degli articoli mysql_num_rows()

e nella seconda non c'e' il LIMIT $a,$b

race2
02-03-2004, 10:04
Originariamente inviato da cionci
Allora credo che sia difficile che il problema dipenda da quello...

Non è che i dati che visualizzi contengono codice HTML o JavaScript ?


no !! solo varchar(30) , date, e basta

nei varchar ci sono solo stringhe semplici a-z 0-9

tieni conto che si parla di Access + ODBC Driver

non so se significa qualcosa....

cionci
02-03-2004, 10:07
Originariamente inviato da race2
mi idmenticavo

ci sono 2 query, 1 per l'estrazione degli articoli 1 per il conteggio del totale degli articoli mysql_num_rows()

e nella seconda non c'e' il LIMIT $a,$b
Per la seconda fatti ritornare il conteggio con una Sum...
Select Sum(*) As SommaArticoli From Tabella;

Prova un po' così...magari si risolve ;) Almeno non transitano tutti quei dati verso PHP...

cionci
02-03-2004, 10:07
Originariamente inviato da race2
tieni conto che si parla di Access + ODBC Driver
Ma non era MySQL ?

race2
02-03-2004, 10:09
no !!!

guarda il primo post-......

cionci
02-03-2004, 10:17
Alora come fai ad usare LIMIT (che è una prerogativa di MySQL) ?

Comunque prova a farti ritornare il conteggio dei record direttamente dalla select...

race2
02-03-2004, 10:36
<?
//QUERY
$Rec_Pagina=50;
if(!isset($Start))$Start=0;

$Num_Prodotti=odbc_result(odbc_exec($oConn,"SELECT count(*) AS Num_Prodotti FROM $Codice_Cliente WHERE Esito='OK'"),"Num_Prodotti");
$Numero_Pagine=ceil($Num_Prodotti/$Rec_Pagina);
$Pagina_Corrente=ceil(($Start/$Rec_Pagina)+1);
$sSQL="SELECT TOP ".$Rec_Pagina*$Pagina_Corrente." Ora_Start_Out,Ora_End_Out,CLI,Chiamato,DateDiff('s',Ora_Start_Out,Ora_End_Out) AS Risultato FROM $Codice_Cliente WHERE Esito='OK' ORDER BY Ora_Start_Out DESC";
$sS="SELECT Ora_Start_Out,Ora_End_Out,CLI,Chiamato,DateDiff('s',Ora_Start_Out,Ora_End_Out) AS Risultato FROM $Codice_Cliente WHERE Esito='OK' ORDER BY Ora_Start_Out DESC";
?>



<?
//PAGING
if($Numero_Pagine>1){
for($Pagina=1;$Pagina<=$Numero_Pagine;$Pagina++){
?>[&nbsp;<a href="?Start=<? echo(($Pagina-1)*$Rec_Pagina); ?>&Controllo=Query&Codice_Cliente=<? echo$Codice_Cliente; ?>"><?
if($Pagina==$Pagina_Corrente){ ?><font color="#ff9900"><strong><? echo$Pagina; ?></strong></font><? }else{ ?><font color="#ffffff"><strong><? echo$Pagina; ?></strong></font><? } ?></a>&nbsp;]<? }}
?>



prendi i dati e le variabili per buone e non sbagliate, altrimenti per spiegarti il tipo di progetto mi ci vogliono 2 giorni !!! :D :D :D

cionci
02-03-2004, 10:42
Ad occhio vanno bene le query... Il problema è che non puoi limitare il risultato solamente alla pagina che ti interessa con Access... Strano...non so che dirti... Prova a proporre il problema su una mailing list di PHP... Magari ripulisci il codice dalla roba che non utile e gli mandi il DB di prova compattato...

race2
02-03-2004, 10:46
OK ti ringrazio per avermi seguito fin ora, se magari ti venisse in mente qualcosa riesuma la discussione, grazie ancora ciao!!!