-Ïîèñê ïî äíåâíèêó

Ïîèñê ñîîáùåíèé â rss_sql_ru_access_programming

 -Ïîäïèñêà ïî e-mail

 

 -Ïîñòîÿííûå ÷èòàòåëè

 -Ñòàòèñòèêà

Ñòàòèñòèêà LiveInternet.ru: ïîêàçàíî êîëè÷åñòâî õèòîâ è ïîñåòèòåëåé
Ñîçäàí: 16.03.2006
Çàïèñåé:
Êîììåíòàðèåâ:
Íàïèñàíî: 4


Ñêîðîñòü ïîèñêà â ðåêðîäñåòå ïî ñòðîêå

Ïÿòíèöà, 24 ßíâàðÿ 2014 ã. 18:33 + â öèòàòíèê
Äîáðîãî âðåìåíè ñóòîê. Ïðîøó ïîìîùè èëè õîòÿ áû îáúÿñíåíèÿ.

Èìååòñÿ òàáëèöà t1 ñ ïîëÿìè ID, Str
Èç Excel çàãðóæàþ âî âðåìåííóþ òàáëèöó t2 äàííûå (äîïóñòèì ïî 15000 íåñêîëüêèìè èòåðàöèÿìè)

Äàëåå èä¸ò ìîäóëü ê êîòîðîìó ñîáñòâåííî âîïðîñû.

Ñåé÷àñ âûïîëíÿåòñÿ ïðîâåðêà
If IsNull(DLookUp("[ID]","t1","[Str]='" & t2!Stroka & "'") then
    recordset.addnew
else
    recordset.edit
end if


Ïåðâàÿ èòåðàöèÿ çàíèìàåò 40 ñåê, âòîðàÿ 6-7 ìèíóò, òðåòüÿ 30 è äàëåå...

Ìíîþ áûëè ïðåäïðèíÿòû ðàçëè÷íûå ïîïûòêè èçìåíåíèÿ àëãîðèòìà:
FindFirst
.FindFirst "[Str]='" & t2!Stroka & "'"
If .nomatch then
    .addnew
else
    .edit
end if

Seek (òàáëèöà ïðèëèíêîâàííàÿ ïîýòîìó ÷åðåç OpenForSeek)
 
Set stbl = OpenForSeek("t1")
stbl.Index = "Str"
stbl.Seek "=", t2!Stroka
If stbl.NoMatch Then....

Ñòàëî õóæå... óæå ïåðâàÿ èòåðàöèÿ ãðóçèò 6 ìèí. Êàê òàê? Èíäåêñ ïî ñòðîêå ïðîñòàâëåí.

Ñîçäàéòå åùå áîëåå ïîíÿòíûé èíòåðôåéñ è ìèð ñîçäàñò åùå áîëåå òóïîãî þçåðà.

http://www.sql.ru/forum/1072991/skorost-poiska-v-rekrodsete-po-stroke


 

Äîáàâèòü êîììåíòàðèé:
Òåêñò êîììåíòàðèÿ: ñìàéëèêè

Ïðîâåðêà îðôîãðàôèè: (íàéòè îøèáêè)

Ïðèêðåïèòü êàðòèíêó:

 Ïåðåâîäèòü URL â ññûëêó
 Ïîäïèñàòüñÿ íà êîììåíòàðèè
 Ïîäïèñàòü êàðòèíêó