Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Запрос из 4 строк, медленно работает из php.  [new]
zvezda_t
Member

Откуда: Урал
Сообщений: 919
Всем, привет!

Есть табличка с двумя полями ID, NAME в ней всего 4 записи, например:
5 окт 12, 15:56    [13274905]     Ответить | Цитировать Сообщить модератору
 Re: Запрос из 4 строк, медленно работает из php.  [new]
zvezda_t
Member

Откуда: Урал
Сообщений: 919
извините, отправилось.

tusers
ID NAME
1Иванов
2Петров
3Сидоров
4Сергеев


Запрос
SELECT * FROM tusers;


1) Выполняется в Toad: 12 msecs
2) В php: 0.16899085044861 сек

для сравнения, в MSSQL точно такой же запрос в php выполняется:
5 окт 12, 16:01    [13274953]     Ответить | Цитировать Сообщить модератору
 Re: Запрос из 4 строк, медленно работает из php.  [new]
zvezda_t
Member

Откуда: Урал
Сообщений: 919
в MSSQL точно такой же запрос выполняется:

0.00057005882263184 (сек)

на 3 порядка быстрее.

Это правда что Oracle сам по себе более тормознутый, та как рассчитан на работу с большими объемами данных?
Или есть надежда ускорить как-то?
В чём может быть причина такой скорости?
5 окт 12, 16:04    [13274977]     Ответить | Цитировать Сообщить модератору
 Re: Запрос из 4 строк, медленно работает из php.  [new]
Максим Н
Member

Откуда: Екатеринодар
Сообщений: 1439
zvezda_t,

план, трассировка
5 окт 12, 16:34    [13275274]     Ответить | Цитировать Сообщить модератору
 Re: Запрос из 4 строк, медленно работает из php.  [new]
cond
Guest
криво измерил
5 окт 12, 16:41    [13275330]     Ответить | Цитировать Сообщить модератору
 Re: Запрос из 4 строк, медленно работает из php.  [new]
zvezda_t
Member

Откуда: Урал
Сообщений: 919
Максим Н
zvezda_t,

план, трассировка

Максим Н, здравствуйте. спасибо, что ответили в моей теме.
Извините, а как получить эти характеристики? (у меня Toad стоит)
5 окт 12, 16:42    [13275352]     Ответить | Цитировать Сообщить модератору
 Re: Запрос из 4 строк, медленно работает из php.  [new]
Corner
Member

Откуда:
Сообщений: 1270
zvezda_t
Это правда что Oracle сам по себе более тормознутый, та как рассчитан на работу с большими объемами данных?
Или есть надежда ускорить как-то?

zvezda_t
12 msecs


zvezda_t
в MSSQL точно такой же запрос выполняется:

0.00057005882263184 (сек)


570 msecs

так,кто куда заточен?
не в бд у вас дело, ищите проблему на уровне между базой и вашим приложение.
5 окт 12, 16:43    [13275358]     Ответить | Цитировать Сообщить модератору
 Re: Запрос из 4 строк, медленно работает из php.  [new]
Corner
Member

Откуда:
Сообщений: 1270
пардон не правильно посчитал, пятница ведь))

но все равно в бд все нормально.
5 окт 12, 16:44    [13275369]     Ответить | Цитировать Сообщить модератору
 Re: Запрос из 4 строк, медленно работает из php.  [new]
zvezda_t
Member

Откуда: Урал
Сообщений: 919
Corner
zvezda_t
Это правда что Oracle сам по себе более тормознутый, та как рассчитан на работу с большими объемами данных?
Или есть надежда ускорить как-то?

zvezda_t
12 msecs


zvezda_t
в MSSQL точно такой же запрос выполняется:

0.00057005882263184 (сек)


570 msecs

так,кто куда заточен?
не в бд у вас дело, ищите проблему на уровне между базой и вашим приложение.


Вы вернули меня к жизни! Спасибо! Буду искать проблему в php.
5 окт 12, 16:45    [13275378]     Ответить | Цитировать Сообщить модератору
 Re: Запрос из 4 строк, медленно работает из php.  [new]
AlexFF__|
Member

Откуда:
Сообщений: 2855
zvezda_t,
MSSQL рулит!
Бросай глючный оракл.
5 окт 12, 16:46    [13275392]     Ответить | Цитировать Сообщить модератору
 Re: Запрос из 4 строк, медленно работает из php.  [new]
zvezda_t
Member

Откуда: Урал
Сообщений: 919
Corner,

ну вот(

значит

12 msecs = 0.012

в php уже 0.17 против 0.0005(причем ) - разница приличная! это ужасно(
5 окт 12, 16:47    [13275403]     Ответить | Цитировать Сообщить модератору
 Re: Запрос из 4 строк, медленно работает из php.  [new]
Corner
Member

Откуда:
Сообщений: 1270
версия?
5 окт 12, 16:50    [13275429]     Ответить | Цитировать Сообщить модератору
 Re: Запрос из 4 строк, медленно работает из php.  [new]
zvezda_t
Member

Откуда: Урал
Сообщений: 919
Corner
версия?


Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
Windows NT Version V6.1 Service Pack 1
CPU : 16 - type 8664, 8 Physical Cores
Process Affinity : 0x0x0000000000000000
Memory (Avail/Total): Ph:23688M/32768M, Ph+PgF:56069M/65534M
Redo thread mounted by this instance: 1
Oracle process number: 25
5 окт 12, 16:55    [13275487]     Ответить | Цитировать Сообщить модератору
 Re: Запрос из 4 строк, медленно работает из php.  [new]
Corner
Member

Откуда:
Сообщений: 1270
TEST> create table t (n number);

Table created.

Elapsed: 00:00:00.01
TEST> insert into t values (1123);

1 row created.

Elapsed: 00:00:00.00
TEST> insert into t values (2412);

1 row created.

Elapsed: 00:00:00.00
TEST> insert into t values (3234);

1 row created.

Elapsed: 00:00:00.00
TEST> insert into t values (2144);

1 row created.

Elapsed: 00:00:00.00
TEST> set serveroutput on
TEST> declare
  2    type tp is table of t%rowtype;
  3    cc tp;
  4    time_before timestamp;
  5    time_after  timestamp;
  6  begin
  7    time_before:=systimestamp;
  8    select n bulk collect into cc from t;
  9    time_after:=systimestamp;
 10    dbms_output.put_line(to_char((time_after-time_before)/1000,'9999D9999'));

 11  end;
 12  /
+000000 00:00:00.000002119

PL/SQL procedure successfully completed.

Elapsed: 00:00:00.07
5 окт 12, 17:01    [13275526]     Ответить | Цитировать Сообщить модератору
 Re: Запрос из 4 строк, медленно работает из php.  [new]
zvezda_t
Member

Откуда: Урал
Сообщений: 919
Corner,

Выполнила для своей таблицы:

+000000 00:00:00.000000000

PL/SQL procedure successfully completed.

Что это значит? Всё быстро работает?
5 окт 12, 19:00    [13276099]     Ответить | Цитировать Сообщить модератору
 Re: Запрос из 4 строк, медленно работает из php.  [new]
Максим Н
Member

Откуда: Екатеринодар
Сообщений: 1439
zvezda_t,

Не знаю как в TOAD'е, а стандартный способ это в sqlplus

SET AUTOTRACE ON


Выполните это перед SELECT'ом, посмтотрим план.
6 окт 12, 08:28    [13277346]     Ответить | Цитировать Сообщить модератору
 Re: Запрос из 4 строк, медленно работает из php.  [new]
zvezda_t
Member

Откуда: Урал
Сообщений: 919
Здравствуйте, Максим Н
Спасибо, Вам, что научили, как план смотреть!!!!! :)

Максим Н
Выполните это перед SELECT'ом, посмтотрим план.


Вот, что у меня получилось:
автор
Execution Plan
----------------------------------------------------------
Plan hash value: 1732029572

-------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
-------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 7 | 630 | 3 (0)| 00:00:01 |
| 1 | TABLE ACCESS FULL | TEDUCATION_HDBK | 7 | 630 | 3 (0)| 00:00:01 |
-------------------------------------------------------------------------------------

Note
-----
- dynamic sampling used for this statement (level=2)


Statistics
----------------------------------------------------------
0 recursive calls
0 db block gets
8 consistent gets
0 physical reads
0 redo size
569 bytes sent via SQL*Net to client
364 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
7 rows processed
8 окт 12, 08:13    [13282147]     Ответить | Цитировать Сообщить модератору
 Re: Запрос из 4 строк, медленно работает из php.  [new]
Павел Воронцов
Member

Откуда: Новосибирск
Сообщений: 2386
Блог
zvezda_t,

а в пхп это как выглядит? Код можно глянуть?
8 окт 12, 09:00    [13282265]     Ответить | Цитировать Сообщить модератору
 Re: Запрос из 4 строк, медленно работает из php.  [new]
zvezda_t
Member

Откуда: Урал
Сообщений: 919
Павел Воронцов
zvezda_t,

а в пхп это как выглядит? Код можно глянуть?


конечно:
$start = microtime(true);	
//-------------------
	$stid = oci_parse($conn, 'SELECT * FROM TEDUCATION_HDBK ORDER BY ID');
	oci_execute($stid);
	$nrows = oci_fetch_all($stid, $res);
	echo "$nrows rows fetched<br/>\n";
	var_dump($res);
	echo "<br/>";
//-------------------  
echo "<br/>t=".(microtime(true) - $start);
8 окт 12, 09:36    [13282386]     Ответить | Цитировать Сообщить модератору
 Re: Запрос из 4 строк, медленно работает из php.  [new]
Павел Воронцов
Member

Откуда: Новосибирск
Сообщений: 2386
Блог
zvezda_t
Павел Воронцов
zvezda_t,

а в пхп это как выглядит? Код можно глянуть?


конечно:
$start = microtime(true);	
//-------------------
	$stid = oci_parse($conn, 'SELECT * FROM TEDUCATION_HDBK ORDER BY ID');
	oci_execute($stid);
	$nrows = oci_fetch_all($stid, $res);
	echo "$nrows rows fetched<br/>\n";
	var_dump($res);
	echo "<br/>";
//-------------------  
echo "<br/>t=".(microtime(true) - $start);
1) Попробуйте парсить 1 раз, испольуйте какой-нибудь кэш стейтментов.
2) Сделайте
SELECT ID, NAME FROM TEDUCATION_HDBK ORDER BY ID
Явное пересечение полей поможет пхп-парсеру.
3) Включите трейс сессии и проверьте что конкретно происходит на сервере.
8 окт 12, 13:50    [13284264]     Ответить | Цитировать Сообщить модератору
 Re: Запрос из 4 строк, медленно работает из php.  [new]
zvezda_t
Member

Откуда: Урал
Сообщений: 919
Павел Воронцов
1) Попробуйте парсить 1 раз, испольуйте какой-нибудь кэш стейтментов.

не очень понятно... как это сделать?

Павел Воронцов
3) Включите трейс сессии и проверьте что конкретно происходит на сервере.

Скажите, пожалуйста, как включить?
8 окт 12, 14:22    [13284563]     Ответить | Цитировать Сообщить модератору
 Re: Запрос из 4 строк, медленно работает из php.  [new]
Corner
Member

Откуда:
Сообщений: 1270
Как включить трассировку сессии?
8 окт 12, 14:29    [13284640]     Ответить | Цитировать Сообщить модератору
 Re: Запрос из 4 строк, медленно работает из php.  [new]
Павел Воронцов
Member

Откуда: Новосибирск
Сообщений: 2386
Блог
zvezda_t
не очень понятно... как это сделать?
Это сильно зависит от архитектуры приложения и пхп обертки, которой вы пользуетесь. И еще от 10500 факторов. У вас есть архитектор? Это зона его ответственности - что и как использовать.
8 окт 12, 14:37    [13284718]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить