![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Про Plan [D5, IB6.x]
rava © (2003-09-16 08:49:00)
Имеется таблица Saldo. По полю KOD создан индекс.
Как составить PLAN чтобы SELECT использовал индекс ?
Select * From Saldo Where kod=100 Plan ???????
Johnmen (2003-09-16 10:03:00) [1]
Расплатой за это будет в несколько раз замедленный ввод/удаление данных в таблицу...:)))
Хотя, как правило, это несущественно...
rava (2003-09-16 09:56:00) [2]
Всем спасибо !
Созданием двух индексов по полям NCH и DPLT запрос выполняется 90 раз быстрее.
Danilka (2003-09-16 09:37:00) [3]
rava © (16.09.03 09:27)
ему нужны индексы по полям участвующим в секции where, в твоем случае это:
NCH и DPLT
Alexandr (2003-09-16 09:35:00) [4]
а по DPLT?
rava (2003-09-16 09:27:00) [5]
> Alexandr
CREATE TABLE SALDO (
DPLT DATE,
KOD INTEGER,
NCH CHAR (20) CHARACTER SET WIN1251 COLLATE WIN1251,
SALDO DOUBLE PRECISION);
/* Indices definition */
CREATE DESCENDING INDEX IDX_SALDO ON SALDO (KOD);
Johnmen (2003-09-16 09:24:00) [6]
>Что нужно для того чтобы запрос выполнялься быстрее.
Например, иметь индексы по тем полям, которые в WHERE...
Alexandr (2003-09-16 09:20:00) [7]
индексы покажи.
rava (2003-09-16 09:14:00) [8]
> Alexandr
Select KOD From Saldo
Where saldo.NCH = "20202810001938000751" And saldo.DPLT <= "09/11/2003"
Saldo имеет 220000 записей.
Индекс активна.
Но запрос по моему не использует индекс. Что нужно для того чтобы запрос выполнялься быстрее.
Анализ производительности запроса IBManager:
Query Time
------------------------------------------------
Prepare : 47
Execute : 4 390
Avg fetch time: 292,67 ms
Memory
------------------------------------------------
Current: 3 028 937
Max : 3 419 257
Buffers: 2 048
Operations
------------------------------------------------
Read : 16 899
Writes : 4
Fetches: 471 089
Plan:
------------------------------------------------
PLAN (SALDO NATURAL)
Enchanced Info:
+--------------------------+-------+-----------+---------+---------+----------+
| Table Name | Index | Non-Index | Updated | Deleted | Inserted |
| | reads | reads | | | |
+--------------------------+-------+-----------+---------+---------+----------+
| RDB$FIELDS| 4 | 0 | 0 | 0 | 0 |
| RDB$RELATION_FIELDS| 4 | 0 | 0 | 0 | 0 |
| RDB$RELATIONS| 2 | 0 | 0 | 0 | 0 |
| SALDO| 0 | 218 642 | 0 | 0 | 0 |
| RDB$RELATION_CONSTRAINTS| 0 | 20 | 0 | 0 | 0 |
+--------------------------+-------+-----------+---------+---------+----------+
Alexandr (2003-09-16 08:57:00) [9]
он и должен использовать индекс и без твоего плана.