Сейчас выборка идет последовательностью из 2-х SQL запросов
через вызов интерфейсных функций is_download_tth и is_known_file
В окне поиска
else if (CFlylinkDBManager::getInstance()->is_download_tth(sr->getTTH()))
columns[COLUMN_LOCAL_PATH] = TSTRING(I_DOWNLOADED_THIS_FILE);
else if (CFlylinkDBManager::getInstance()->is_known_file(sr->getTTH()))
columns[COLUMN_LOCAL_PATH] = TSTRING(THIS_FILE_WAS_IN_MY_SHARE);
В окне просмотра шары
if (CFlylinkDBManager::getInstance()->is_download_tth(f->getTTH()))
f->setFlag(DirectoryListing::FLAG_DOWNLOAD);
else if (CFlylinkDBManager::getInstance()->is_known_file(f->getTTH()))
f->setFlag(DirectoryListing::FLAG_OLD_TTH);
В результате в базу летит запрос вида
select count(*) from fly_tth where tth=x'27f929fe7ca5fe04e2a9931c29570234fc84bb437073f408'
если ничего не нашли, то идет второй запрос
select id from fly_hash where tth=x'27f929fe7ca5fe04e2a9931c29570234fc84bb437073f408'
TODO - переделать на посылку одного SQL запроса вида
select 1 from fly_tth where tth=x'27f929fe7ca5fe04e2a9931c29570234fc84bb437073f408'
union all
select 2 from fly_hash where tth=x'27f929fe7ca5fe04e2a9931c29570234fc84bb437073f408'
с анализом курсора и возвратом 2-х флажков.
изменение позволит сократить кол-вл транзакций к базе
и более оптимально получать результат в большинстве случаев
From Pavel.Pimenov@gmail.com on May 21, 2013 14:06:59
Сейчас выборка идет последовательностью из 2-х SQL запросов
через вызов интерфейсных функций is_download_tth и is_known_file
В окне поиска
else if (CFlylinkDBManager::getInstance()->is_download_tth(sr->getTTH()))
columns[COLUMN_LOCAL_PATH] = TSTRING(I_DOWNLOADED_THIS_FILE);
else if (CFlylinkDBManager::getInstance()->is_known_file(sr->getTTH()))
columns[COLUMN_LOCAL_PATH] = TSTRING(THIS_FILE_WAS_IN_MY_SHARE);
В окне просмотра шары
В результате в базу летит запрос вида
select count(*) from fly_tth where tth=x'27f929fe7ca5fe04e2a9931c29570234fc84bb437073f408'
если ничего не нашли, то идет второй запрос
select id from fly_hash where tth=x'27f929fe7ca5fe04e2a9931c29570234fc84bb437073f408'
TODO - переделать на посылку одного SQL запроса вида
select 1 from fly_tth where tth=x'27f929fe7ca5fe04e2a9931c29570234fc84bb437073f408'
union all
select 2 from fly_hash where tth=x'27f929fe7ca5fe04e2a9931c29570234fc84bb437073f408'
с анализом курсора и возвратом 2-х флажков.
изменение позволит сократить кол-вл транзакций к базе
и более оптимально получать результат в большинстве случаев
Original issue: http://code.google.com/p/flylinkdc/issues/detail?id=1040
The text was updated successfully, but these errors were encountered: