На Java-AS3AP тестах локальный TCP на Windows работал примерно вдвое
медленнее чем при использовании embedded. Так что разница есть. По
крайней мере из Java.
Извини - работать в процессе или с межпроцессной прослойкой (неважно
какой) :) gbak через службы тоже намного быстрее работает :)
Угу. Но это я к тому, что эта прослойка сама по себе создает задержки. И
быстрее будет маленький блоб внутри процесса зафетчить и передать
клиенту с остальными записями чем клиенту за каждым блобом лезть на сервер.
Вопрос: тебя удовлетворит сравнение CHAR(10), CHAR(20), VARCHAR(80) с
BLOB SUB_TYPE 1?
Давай хоть что-нибудь, для начала :)
См. табличку ниже. цифры - миллисекунды затраченные на исполнение теста.
База стандартная для теста - 4 таблички с различным статистическим
распределением значений, в каждой табличке по 100 тыс. записей. Первый
тест создает базу и заливает значения. Остальные - single-user part из
теста (multi-user я не проводил). Хардвер: IBM ThinkPad T43 (Pentium M,
2 GHz, 1 GB RAM, 80 GB HDD, WinXP/NTFS, FB 2.0.0/12748). Два теста
вылетели с exception (в обоих случаях использовался GROUP BY по блобу,
править из-за них тест мне не хотелось).
Для маленьких полей сравнение явно не в пользу блобов.
CHAR/VARCHAR BLOB b/a
testLoadData 99425 342238 344%
testModeTinyRelation 31 281 906%
testTenPctKeyCodeIndex 2204 2516 114%
testModeTinyFile 78 360 462%
testSelect1Clustered 31 156 503%
testModeTinyScreen 31 31 100%
testTenPctIntIndex 719 719 100%
testMode100kFile 204 860 422%
testMode1kRelation 31 31 100%
testTenPctSignedIndex 1109 1172 106%
testUniquesCodeIndex 1485 1625 109%
testMode1kFile 31 78 252%
testTenPctDoubleIndex 641 922 144%
testUpdatesDecimIndex 1235 1454 118%
testMode10kFile 281 109 39%
testTenPctFloatIndex 484 688 142%
testUpdatesIntIndex 751 953 127%
testTenPctDecimIndex 687 594 86%
testHundredCodeIndex 938 1797 192%
testMode10kRelation 31 47 152%
testTenPctNameIndex 625 -1
testUpdatesCodeIndex 1344 1156 86%
testMode100kRelation 94 125 133%
testTenPctCodeIndex 2157 1344 62%
testUpdatesDoubleIndex 640 1313 205%
testMode1kScreen 47 47 100%
testMode10kScreen 203 94 46%
testMode100kScreen 516 844 164%
testJoin3Clustered 31 46 148%
testSelect100NonClustered 32 79 247%
testTableScan 109 31 28%
testFunctionAggregate 328 -1
testScalarAggregate 32 32 100%
testSelect100Clustered 31 62 200%
testJoin3NonClustered 15 31 207%
testSelect10TenPctNonClustered 32 376 1175%
testSimpleReport 844 859 102%
testInfoRetrieval 46 47 102%
testCreateView 79 78 99%
testSubtotalReport 265 125 47%
testTotalReport 63 63 100%
testDropView 47 109 232%
testJoin2Clustered 62 16 26%
testJoin2 297 953 321%
testVariableSelectivity 406 7189 1771%
testJoin4Clustered 32 15 47%
testProjection100 500 27646 5529%
testJoin4NonClustered 62 32 52%
testProjectionTenPct 766 781 102%
testSelect1NonClustered 31 31 100%
testJoin2NonClustered 16 32 200%
testIntegrity 250 31 12%
testUpdatesDropIndices 63 109 173%
testBulkSave 140 78 56%
testBulkModify 2001 3017 151%
testAppendMiddle 15 31 207%
testUpdateMiddle 31 47 152%
testDeleteMiddle 32 31 97%
testAppendEnd 31 31 100%
testUpdateEnd 16 16 100%
testDeleteEnd 31 31 100%
testUpdatesCodeIndex 2407 3298 137%
testAppendMiddle 171 468 274%
testUpdateMiddleCode 47 32 68%
testDeleteMiddle 32 31 97%
testUpdatesIntIndex 281 313 111%
testAppendMiddle 31 15 48%
testUpdateMiddleInt 31 31 100%
testDeleteMiddle 16 32 200%
testBulkAppend 5220 5282 101%
testBulkDelete 2235 3391 152%