Бързодействие на БД

12 отговора 350 прегледа
#1

Бързодействие на БД

Накратко -> Делфи 6, ФайърБърд 1.5, база около 50 МБ с 5 таблици с по 200 000 записа. Драйвери за връзка IBx. SQL диалект 1, page size 2096.

Искам да попитам - нормално ли е 10 000 записа да ги инсъртва за минута и половина. И още - как може да се забърза.

Благодаря предварително.

Отговор
в отговор на dalt #2

Re: Бързодействие на БД

1. Зависи кви полета ти съставят един запис..
2. Вдигни размера на page size

с малко влакче композирам патките в реката
Отговор
в отговор на dalt #3

Re: Бързодействие на БД

бтв да си влизал навремето в IRC? #Amber?

с малко влакче композирам патките в реката
Отговор
в отговор на karasko #4

Re: Бързодействие на БД

Полетата не са много - 7-8.

Колко според теб трябва да е page size ?


чувал ли си за компонент FIB Plus ? Дали с него може да се подобри бързодействието ?

Да, и сега влиза. Рядко с ДАЛТ, по-често с C0derMan

Отговор
в отговор на karasko #5

Re: Бързодействие на БД

Мисля, че като промених page size стана доста по-добре.

Insert 10000 - 30 сек.
Update 10000 - 45 сек.

10x

Отговор
в отговор на dalt #6

Re: Бързодействие на БД

Ако имаш много индекси това може също да забавя малко, пробвай да ги изключиш преди инсертването на многото данни и после да си ги включиш наново


_ _ _

Time is like a drug. Too much of it kills you.
Отговор
в отговор на dalt #7

Re: Бързодействие на БД

за нищо :)

с малко влакче композирам патките в реката
Отговор
в отговор на dalt #8

Re: Бързодействие на БД

Мда, Аналог Радио Мен :)))

добри времена бяха :)

с малко влакче композирам патките в реката
Отговор
в отговор на dalt #9

Re: Бързодействие на БД

Освен page size, както много умно се сетиха някои колеги, можеш да увеличиш бързодействието и като изключиш Forced writes.
Така ще се ускори поне 5 пъти.
За сметка на това ако ти изгасне тока е по-вероятно базата данни да се счупи.

Отговор
в отговор на killall #10

Re: Бързодействие на БД

Непрепоръчвам изключване на индексите.
Незнам дали във FireBird 1.5 са го подобрили, но в FireBird 1.0 може да имаш само 255 версии на мета данните т.е. на прост език можеш да включиш и да изключиш индексите 128 пъти. След това дава грешка. Оправя се като направиш backup и restore на базата данни. Така се изчистват версиите и се почва отначало.

(можеш да се сетиш как го открих )
(и да не ти казвам колко време ги псувах за това )

Отговор
в отговор на Dark_Dirk #11

Re: Бързодействие на БД

>можеш да включиш и да изключиш индексите 128 пъти
Очевидно под "включване"/"изключване" разбираш create/drop
Това е предназначено да се ползва при разработване на базата и затова посоченото ограничение за промяна на метаданните не е лимитиращо.

Няма никакъв проблем с ALTER INDEX name {ACTIVE | INACTIVE};
Освен другото, това позволява да си "включваш"/"изключваш" индексите "автоматично" при масов insert/update/delete независимо от "борбата" на админите с индексите за подобряване на select-ите

Отговор
в отговор на Dark_Dirk #12

Re: Бързодействие на БД

>можеш да увеличиш бързодействието и като изключиш Forced writes
Много опасен съвет, особено при липса на UPS става смъртоносен
Още повече, че ефекта е незначителен ( в рамките до 10%)

Отговор
в отговор на NDeu #13

Re: Бързодействие на БД

Ейй NDeu, това с ALTER наистина работи . Явно проблема е бил само в InterBase 6.0, а във FireBird го няма ! Бог да те поживи, незнаеш каква голяма услуга ми направи

Отговор