SQLite while (reader.Read ()) завершается медленно, однако использование break действительно быстро для такого же количества итераций - PullRequest
0 голосов
/ 17 апреля 2020

Примерно с 50 000 результатов запроса первый пример дает всплеск 500 мс, когда считывателю разрешено завершить работу, и завершает работу в то время, как l oop:

while(reader.Read())
{
        // do stuff
        // here it's fast
}
// lagspike of 500ms

И это действительно быстро:

int i = 0;
while(reader.Read())
{
        if(i > 50000) break;
        // do stuff
        // here it's fast
}
// no lag spike

Буду очень признателен, если кто-нибудь сможет пролить свет на то, почему это может происходить? Я совершенно растерялся ..

Я использую SQLite3 для Unity и выполняю поле поиска с запросом такого типа:

"SELECT * FROM dictionary WHERE lemma LIKE search%";

Заранее спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...