Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / IBM DB2, WebSphere, IMS, U2, etc Новый топик    Ответить
 ODBC таймаут запрос, скорость и прочее  [new]
=v3=
Member

Откуда:
Сообщений: 12
Есть таблица

CREATE TABLE Tailings (
nDate Date,
kShop CHARACTER(4) NOT NULL,
kCommodity INTEGER NOT NULL,
tNamber DOUBLE,
tAmount DOUBLE);

Есть индект

CREATE INDEX iTailings ON Tailings (nDate ASC,kShop ASC,kCommodity ASC)
PCTFREE 10 MINPCTUSED 10 ALLOW REVERSE SCANS PAGE SPLIT SYMMETRIC COLLECT SAMPLED DETAILED STATISTICS;

в базе 30 000 000 записей

Использую Win ODBC драйвер, делаю запрос из 1С 7.7

SELECT * FROM TAILINGS WHERE kCommodity=10120 AND kShop='ФМ' ORDER BY nDATE FETCH FIRST 85 ROWS ONLY

Если первых 85 записей выдает, то уже 100 не выдает зерез 40 секунд запрос отваливается
с результатом Ноль записей.

1.Как увеличить время ожидания результата и где.
В параметрах ODBC нашел только настройку интервала проверки, остальные по умолчанию
0 - пока не выполнится.

2.Подскажите это нормальная скорость для Express C (сервер Win два ксеона 3.0, 8 ОЗУ)
30 дек 09, 11:49    [8136518]     Ответить | Цитировать Сообщить модератору
 Re: ODBC таймаут запрос, скорость и прочее  [new]
Mark Barinstein
Member

Откуда: Москва
Сообщений: 4946
=v3=,

Для такого запроса может быть нужет индекс типа (kCommodity, kShop).
Вы можете попробовать получить рекомендации по поводу индексов так:
На сервере из db2cw, находясь в каком-то каталоге, куда будет записан файл с рекомендациями:

db2 connect to dbname
db2 runstats on table your_schema.tailings and indexes all
db2advis -d dbname -s "SELECT * FROM TAILINGS WHERE kCommodity=10120 AND kShop='ФМ' ORDER BY nDATE FETCH FIRST 100 ROWS ONLY" -o advis.txt

посмотрите, что в файле advis.txt советуется.
30 дек 09, 12:30    [8136874]     Ответить | Цитировать Сообщить модератору
 Re: ODBC таймаут запрос, скорость и прочее  [new]
=v3=
Member

Откуда:
Сообщений: 12
Mark Barinstein,

Индекс есть

CREATE INDEX iTailings ON Tailings (nDate ASC,kShop ASC,kCommodity ASC)
PCTFREE 10 MINPCTUSED 10 ALLOW REVERSE SCANS PAGE SPLIT SYMMETRIC COLLECT SAMPLED DETAILED STATISTICS;
5 янв 10, 08:40    [8148349]     Ответить | Цитировать Сообщить модератору
 Re: ODBC таймаут запрос, скорость и прочее  [new]
Anka_S
Member

Откуда:
Сообщений: 203
=v3=,привет!
Попробуй порыть db2cli.ini когда то вопрос закрытия соединения с базой решали через модернизацию этого файла на клиенте, к сожалению давно было, но если не срочно после праздников отпишусь или сам поищи
5 янв 10, 19:34    [8150342]     Ответить | Цитировать Сообщить модератору
 Re: ODBC таймаут запрос, скорость и прочее  [new]
=v3=
Member

Откуда:
Сообщений: 12
Anka_S,

Да такой файл есть в каталоге пользователя (пустой)
и в проггам файлах "IBM DATA SERVER DRIVER"
с содержанием:

; Comment lines start with a semi-colon.

[tstcli1x]
uid=userid
pwd=password
autocommit=0
TableType="'TABLE','VIEW','SYSTEM TABLE'"

[tstcli2x]
; Assuming dbalias2 is a database in DB2 for MVS.
SchemaList="'OWNER1','OWNER2',CURRENT SQLID"

[MyVeryLongDBALIASName]
dbalias=dbalias3
SysSchema=MYSCHEMA
6 янв 10, 07:50    [8151249]     Ответить | Цитировать Сообщить модератору
 Re: ODBC таймаут запрос, скорость и прочее  [new]
Anka_S
Member

Откуда:
Сообщений: 203
=v3=
Anka_S,

Да такой файл есть в каталоге пользователя (пустой)
и в проггам файлах "IBM DATA SERVER DRIVER"
с содержанием:

; Comment lines start with a semi-colon.

[tstcli1x]
uid=userid
pwd=password
autocommit=0
TableType="'TABLE','VIEW','SYSTEM TABLE'"

[tstcli2x]
; Assuming dbalias2 is a database in DB2 for MVS.
SchemaList="'OWNER1','OWNER2',CURRENT SQLID"

[MyVeryLongDBALIASName]
dbalias=dbalias3
SysSchema=MYSCHEMA

Привет, добралась до рабочего компа и нашла рекомендации, которыми лечили проблему, а именно для настройки IBM DB2 Client в файл db2cli.ini, находящийся в каталоге в который устанавдивали DB2 обычно это C:\Program Files\IBM\SQLLIB\ (хотя я предпочитаю короткие пути без пробелов) нужно добавить
[имя алиасов базы]
DBALIAS=ИМЯ
QUERYTIMEOUTINTERVAL=0 (на практике втыкали от 0 до 60)
иногда такой вариант не срабатывал и тогда лепили две секции частично повторяющие друг друга
[COMMON]
QUERYTIMEOUTINTERVAL=0

[MY_BASE]
DBALIAS=MY_BASE
QUERYTIMEOUTINTERVAL=0
после настройки клиентскую машину нужно перезагрузить
Полная версия описания этой настройки в 2007 году лежала на http://support.mdl.ru/Pc_compl/Doc/Db2/v7.1/ru/Html/db2iy/frame3.htm#db2iy75
Как видишь настройк относилась к 7 версии, но мы её использовали под 8.1 с фикспаком честно не помню каким. Удачи
10 янв 10, 22:27    [8162815]     Ответить | Цитировать Сообщить модератору
 Re: ODBC таймаут запрос, скорость и прочее  [new]
=v3=
Member

Откуда:
Сообщений: 12
Спасибо, помогло.
Вот только незнаю что.
В db2cli.ini поставил два параметра в секции алиас и коммон.
Удалил индекс и вместо него создал три, на каждый столбец отдельно,
скорость выполнения запроса выросла.
Буду тестировать.

Всем большое спасибо.
Возможно в будущем я и перейду с SQLite на IBM DB2.
11 янв 10, 07:36    [8163331]     Ответить | Цитировать Сообщить модератору
Все форумы / IBM DB2, WebSphere, IMS, U2, etc Ответить