FireBird и Фазы Луны.

Запросы, планы, оптимизация запросов, ...

Модераторы: kdv, CyberMax

Ответить
regvoc
Сообщения: 13
Зарегистрирован: 24 дек 2006, 14:08

FireBird и Фазы Луны.

Сообщение regvoc » 24 дек 2006, 14:10

Думаю этот форум посещают разработчики firebird., вроде русские программисты его доделывают.

Обьясните глупому ну вот что не так.

1. Запускаем IbExpert создаем таблицу (4кб страница)

Код: Выделить всё

CREATE TABLE URLS (
ID INTEGER
);
Никаких тригеров индексов и.т.д. Обидно 600КБ пустая база хотя это не важно.

2. Запускаем Delphi кидаем три компонента FIBPlus, все настройки по умолчанию. и две кнопки
3. Добавим в базу 10,000 integer

Код: Выделить всё

procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
begin
pFIBTransaction1.StartTransaction;

pFIBQuery1.SQL.Text:='insert into urls (id) values (:id)';
pFIBQuery1.Prepare;
for i:=1 to 10000 do
begin
pFIBQuery1.ParamByName('id').AsInteger:=i;
pFIBQuery1.ExecQuery;
end;
pFIBTransaction1.Commit;

end;
Все ОК в базе 10,000 записей. ( по хорошему она должна занимать а базе 40КБ.)

4. Закроем программу, зупустим опять

Пытаемся много раз нажимать на вторую кнопку просто обнуление
вот код.
----------------------------------------------------

Код: Выделить всё

pFIBTransaction1.StartTransaction;
pFIBQuery1.SQL.Text:='update urls set id=:id';
pFIBQuery1.Prepare;
pFIBQuery1.ParamByName('id').AsInteger:=0;
pFIBQuery1.ExecQuery;
pFIBTransaction1.Commit
----------------------------------------------------

Время выполнения этого запроса от 0.02 сек до 23 секунд?

Ну как такое может быть, я понимаю там версионность все дела?

Ну блин 40Килобайт должно занимать это добавление каждые раз.
10,000*4 (integer)

Как это может (временами вот раз 5 хорошо потом тормоз)??? ТОРМОЗИТЬ Fb2 на Athlon 64 3200+ 1Гиг ОП.

1. Отключил всяких касперских, outposto и.т.д
2. Название базы fdb - значит виндовс не может ресторить.
3. Размер файла базы несколько мегабайт.

Где моя тупость или тут Фазы Луны Firebird ? (Fb2 Server, XP Prof)
Смешно просто 23 секунды, с какойто непонятной периодичностью, на 2-5 мегабайтах базы при такой машине а?

hvlad
Разработчик Firebird
Сообщения: 1244
Зарегистрирован: 21 мар 2005, 10:48

Сообщение hvlad » 24 дек 2006, 18:59

Скрипт из 25 пар update; commit;
fw = on 22 sec
fw = off 10 sec

Результаты стабильно повторяются

regvoc
Сообщения: 13
Зарегистрирован: 24 дек 2006, 14:08

Сообщение regvoc » 24 дек 2006, 22:41

немного не понятно, нужен один update

В двух словах. да update будет нормально выполняться.
но если выполнять после него select, если нет тормоза.
после закрытия и открытия этой тестовой программы.

хотя уже на sql.ru там эта тема более подробно описана.
http://sql.ru/forum/actualthread.aspx?b ... 77919&pg=2

regvoc
Сообщения: 13
Зарегистрирован: 24 дек 2006, 14:08

Сообщение regvoc » 24 дек 2006, 22:44

P.S. fw = on

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 25 дек 2006, 10:26

Обидно 600КБ пустая база хотя это не важно.
она не пустая. там системные таблицы.

кроме того, похоже, что у тебя размер страницы 1К, а это нынче совсем плохо. Надо 4 или 8к. при этом база будет около 2.5 мегабайт.
Все ОК в базе 10,000 записей. ( по хорошему она должна занимать а базе 40КБ.)
нет. потому что
а) страницы заполняются не полностью
б) у записей есть заголовок, примерно 18 байт.
Ну блин 40Килобайт должно занимать это добавление каждые раз.
с какой, блин, радости? См. выше, у записей и версий есть заголовок.
Время выполнения этого запроса от 0.02 сек до 23 секунд?
что-то у тебя не то.
немного не понятно
тогда пиши понятно.
хотя уже на sql.ru там эта тема более подробно описана.
там и тут почти одни и те же люди.

Dimitry Sibiryakov
Заслуженный разработчик
Сообщения: 1436
Зарегистрирован: 15 сен 2005, 09:05

Сообщение Dimitry Sibiryakov » 25 дек 2006, 10:56

И поскольку там экспериментально доказана непричастность Луны, тему можно закрывать.

Ответить