[color=#008000]peta Napsal:
-------------------------------------------------------
> Tu mame Stag v Oracle, co jsem delal vypis
> tabulek, tak jich bylo snad kolem 1000? Spousta z
> nich ma ale do 100 radku. Tabulka se studenty asi
> 10.000 . Tabulka se znamkami a pod muze mit i
> 1.000.000 . To uz by se dalo povazovat za velke
> :)
> Hlavne bych to povazoval za neoptimalizovane.
> Spousta tect pomocnych tabulek by se dala resit
> jednou s 1000 zaznamy, coz by bylo jiste skoro
> stejne rychle jako spojovat 10 dokupy.
>
> Ten script pro Oracle v PHP vypada asi takt
> o$query = "select table_name from all_all_tables
> ORDER BY table_name ASC";
> $stmt = oci_parse($db_conn, $query);
> $exec = oci_execute($stmt);
> if (!$exec) {$err = oci_error($stmt); echo
> $err['message'];}
> $t.= '
';
> $i=0;
> while ($res = oci_fetch_array($stmt))
> {
> // foreach($res as $key=>$value)
> // {if ($key==='TABLE_NAME') {$t.=
> '- '.$value.'
';}}
> foreach($res as $key=>$value)
> {if ($key==='TABLE_NAME') {$t.=
> '- '.strtolower($value).'
';}}
> $i++;
> }
> $t.= '
';
> $t.= '
'.$i.' tabulek
';
>
> Misto vypisovani tam das SQL prohledavani. A cele
> to obklopis transakcemi, aby to nezdrzovalo.
> Normalne se kazdy dotaz bere jako samostatna
> transakce a SQL resi vselijake uzavirani a
> zamykani. Je pro to nejaky spesl php nebo sql
> prikaz...
>[/color]
[code][color=#000080]...
// parametr [b]OCI_DEFAULT[/b] způsobí, že [b]oci_execute[/b] se nebere jako samostatná transakce
$exec = oci_execute($stmt, [b]OCI_DEFAULT[/b]);
...
// a na závěr potvrdit všechny transakce
[b]oci_commit($db_conn);[/b]
...[/color][/code]
Podrobněji viz odkaz na článek k tomu.
[b]Performing Transactions with Oracle and PHP[/b]
http://www.oracle.com/technology/pub/articles/oracle_php_cookbook/fuecks_transactions.html
[color=#008000]peta Napsal:
-------------------------------------------------------
> Tu mame Stag v Oracle, co jsem delal vypis
> tabulek, tak jich bylo snad kolem 1000? Spousta z
> nich ma ale do 100 radku. Tabulka se studenty asi
> 10.000 . Tabulka se znamkami a pod muze mit i
> 1.000.000 . To uz by se dalo povazovat za velke
> :)
> Hlavne bych to povazoval za neoptimalizovane.
> Spousta tect pomocnych tabulek by se dala resit
> jednou s 1000 zaznamy, coz by bylo jiste skoro
> stejne rychle jako spojovat 10 dokupy.
>
> Ten script pro Oracle v PHP vypada asi takt
> o$query = "select table_name from all_all_tables
> ORDER BY table_name ASC";
> $stmt = oci_parse($db_conn, $query);
> $exec = oci_execute($stmt);
> if (!$exec) {$err = oci_error($stmt); echo
> $err['message'];}
> $t.= '
';
> $i=0;
> while ($res = oci_fetch_array($stmt))
> {
> // foreach($res as $key=>$value)
> // {if ($key==='TABLE_NAME') {$t.=
> '- '.$value.'
';}}
> foreach($res as $key=>$value)
> {if ($key==='TABLE_NAME') {$t.=
> '- '.strtolower($value).'
';}}
> $i++;
> }
> $t.= '
';
> $t.= '
'.$i.' tabulek
';
>
> Misto vypisovani tam das SQL prohledavani. A cele
> to obklopis transakcemi, aby to nezdrzovalo.
> Normalne se kazdy dotaz bere jako samostatna
> transakce a SQL resi vselijake uzavirani a
> zamykani. Je pro to nejaky spesl php nebo sql
> prikaz...
>[/color]
[code][color=#000080]...
// parametr [b]OCI_DEFAULT[/b] způsobí, že [b]oci_execute[/b] se nebere jako samostatná transakce
$exec = oci_execute($stmt, [b]OCI_DEFAULT[/b]);
...
// a na závěr potvrdit všechny transakce
[b]oci_commit($db_conn);[/b]
...[/color][/code]
Podrobněji viz odkaz na článek k tomu.
[b]Performing Transactions with Oracle and PHP[/b]
http://www.oracle.com/technology/pub/articles/oracle_php_cookbook/fuecks_transactions.html
Citovat příspěvek