On Sat, 2003-11-15 at 15:10, Botescu-Fianu Adrian wrote: > odata creat un index pentru un tabel este suficient pentru optimizarea > accesului sau trebuie recreat dupa ce se mai adauga inregistrari?
Nu, trebuie recreat. Si in orice baza de date "normala", dupa crearea lor initiala indecsii se actualizeaza automat. Nu iti dai seama ce idiotenie ar iesi sa trebuiasca sa refaci manual indecsii dupa fiecare insert ? Ce crezi ca s-ar intimpla daca un index ramine neactualizat dupa ce tu adaugi 2000 de inregistrari ? Intr-un select dependente de indexul tau, rezultatele ar fi obtinute foarte repede insa ar fi eronate, pentru ca din index lipsesc informatiile legate de cele 2000 inregistrari noi. Ca atare neactualizarea automata a indecsilor ar transforma baza de date intr-o jucarie absolut inutila dpdv practic. Sint anumite cazuri insa cind inainte de o o serie masiva de importuri, indecsii sint dati jos pentru a mari viteza insert-ului. Spre exemplu ai o tabela de citeva milioane de inregistrari, si in fiecare noapte la ora XX primeste inca 200 000 inregistrari. In cazul in care ai indecsi definiti , pentru fiecare din cele 200k inregistrari se va reactualiza fiecare index. Lucrul asta ar fi tare ineficient (sa refaci indexul de 200k de ori). Ca atare, stiind ca la ora XX noaptea oricum baza de date nu prea are activitate, dai jos indecsii, introduci cele 200k records, apoi recreezi indecsii. Dar o singura data, nu de 200k de ori. La situatia ta (2000 de inregistrari adaugate zilnic) este prea putin sa faci si tu schema cu drop-ul indecsilor) insa ma plictiseam teribil, si neavind ce sa fac m-am gindit sa spun o poveste :))) --- Detalii despre listele noastre de mail: http://www.lug.ro/
