[php] Oracle logon snelheid

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • vinnux
  • Registratie: Maart 2001
  • Niet online
Voor een website maak ik gebruik van PHP in combinatie met een Oracle database. Dit alles is geplaats op een mooie Intel(R) Xeon(TM) CPU 2,3 GHZ en Windows 2000 Server, IIS en PHP 4.3.4. De volgende functie set gebruik ik voor connectie met de database http://nl3.php.net/manual/nl/ref.oracle.php. Dit zijn de standaard functies in PHP.

Nu heb ik gemerkt dat een connectie maken relatief gezien nogal lang duurt +/- 2 seconden. Dit is natuurlijk niet acceptabel voor een webpagina.

Om dit op te lossen willde ik via een persistente connectie (ora_plogon) een connectie te maken en de referntie op te slaan in de sessie en deze later weer te gebruiken op een andere pagina. Helaas lukt dit niet :( .

Hoe zorg ik er voor dat er sneller connectie gemaakt wordt?
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
$CONFIG['db_user'] = 'test';
$CONFIG['db_password'] = 'test1';

function DbConnect(){
  global $CONFIG,$ORACLE_CONNECTION;
  if(isset($ORACLE_CONNECTION))
    return $ORACLE_CONNECTION;
    
  $connection = ora_plogon($CONFIG['db_user'],$CONFIG['db_password']) ;
  if ( $connection == false){
    $error = 'ErrorCode : '.ora_errorcode()."<br>\n".ora_error()."<br>\n";  
    Debug('DbConnect(): Database connections failed'.$error,1);     
  } else {
    Debug('DbConnect(): Database connections established with user '.$CONFIG['db_user']);       
      $ORACLE_CONNECTION = $connection;
    $_SESSION['ORACLE_CONNECTION'] = $connection;
  }
  echo("[".$ORACLE_CONNECTION."]");
  return $ORACLE_CONNECTION;
}

[ Voor 14% gewijzigd door vinnux op 20-01-2004 17:30 ]


Acties:
  • 0 Henk 'm!

  • Brakkie
  • Registratie: Maart 2001
  • Niet online

Brakkie

blaat

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Ok, I finally found out what was causing the long connects...

I changed a line in my sqlnet.ora:

CODE  
SQLNET.AUTHENTICATION_SERVICES= (TNS) 


to

CODE  
SQLNET.AUTHENTICATION_SERVICES= (NONE) 



And w00p, performance increase is major. Now it runs roughly as fast as MSSQL.
I also changed the logon code. You now can connect without setting up Local Net Service Name.

Slowly but steadily I'll get there...

I allready figured out how full text indexing works on Oracle and I'll be adding that next. Now only to find a query which tells me if it is installed or not :(


Ik vond dit ergens op een website. Misschien dat het helpt voor je :)

Systeem | Strava


Acties:
  • 0 Henk 'm!

  • vinnux
  • Registratie: Maart 2001
  • Niet online
Het veranderen van:
SQLNET.AUTHENTICATION_SERVICES= (TNS) naar SQLNET.AUTHENTICATION_SERVICES= (NONE)

Zorgt voor een versnelling naar 0,100 seconden. Dit vind ik nog steeds lang aangezien met mysql ik tijden haal van 0,030. Maar wat doet dit statement precies?

Acties:
  • 0 Henk 'm!

  • Brakkie
  • Registratie: Maart 2001
  • Niet online

Brakkie

blaat

Ik heb werkelijk geen idee, heb ook alleen maar ff gegoogled. Is het niet terug te vinden in oracle documentatie? 0,100 sec lijkt me in ieder geval al een stuk acceptabeler.

Systeem | Strava


Acties:
  • 0 Henk 'm!

  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

Staat de database op dezelfde server?

Who is John Galt?


Acties:
  • 0 Henk 'm!

  • Gert
  • Registratie: Juni 1999
  • Laatst online: 07-11-2024
ODBC3.0 ondersteund connection pools en ik neem aan dat Oracle daar wel een driver voor heeft. Dan moet je alleen nog uitzoeken hoe deze driver in php te gebruiken is gezien ik daar geen kaas van heb gegeten. :)

Acties:
  • 0 Henk 'm!

  • vinnux
  • Registratie: Maart 2001
  • Niet online
Oracle draait op dezelfde server inderdaad.

Acties:
  • 0 Henk 'm!

  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

Dan kun je automatic_ipc aanzetten, dan gaat de communicatie niet over de netwerklagen.
Zie: http://www.dba-oracle.com/art_builder_sqlnet.htm
Hier staan ook meer optimalisatie-tips.

Who is John Galt?

Pagina: 1