|
|
|
баги или не баги
|
|||
|---|---|---|---|
|
#18+
В своём воображении вставил я в таблицу T(V INTEGER) 10 млрд. записей (5 млрд. положительных V, и 5 млрд. отрицательных) . Реально вставлять долго, поэтому в воображении. Вопросы: 1. Есть ли бага FB в том, что Код: sql 1. не вернёт мне 10 млрд? 2. Есть ли бага FB в том, что после Код: sql 1. я не смогу узнать кол-во реально обновлённых записей вызовом isc_dsql_sql_info с isc_info_sql_records, как это делается на табличках меньшего размера? Понятно что в integer 5 млрд не вмещается. Я вот только не пойму есть ли в этом баг. По мне так баг, т.к. я явно получаю ложные результаты функций. А когда я получаю ложные результаты функций, то оцениваю это как баг. А как вы оцениваете? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2014, 05:32 |
|
||
|
баги или не баги
|
|||
|---|---|---|---|
|
#18+
NickDee, Для первого запроса. С чего ты взял? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2014, 06:57 |
|
||
|
баги или не баги
|
|||
|---|---|---|---|
|
#18+
NickDee, твои "баги" отсутствуют в ФБ3, можешь не напрягаться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2014, 09:31 |
|
||
|
баги или не баги
|
|||
|---|---|---|---|
|
#18+
Симонов ДенисДля первого запроса. С чего ты взял? Сделал запрос select count(*) from T. Тип результата: INTEGER. От количества записей в таблице естественно не зависит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2014, 09:38 |
|
||
|
баги или не баги
|
|||
|---|---|---|---|
|
#18+
NickDee, хм... никогда не обращал внимание. В FB3 точно BIGINT. В том числе и для ранжирующих функций (в 3 диалекте) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2014, 09:51 |
|
||
|
баги или не баги
|
|||
|---|---|---|---|
|
#18+
NickDeeВ своём воображении вставил я в таблицу T(V INTEGER) 10 млрд. записейА ты пробовал провернуть - без воображения, в реале - 1 (один) млрд ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2014, 12:53 |
|
||
|
баги или не баги
|
|||
|---|---|---|---|
|
#18+
ТаблоидNickDeeВ своём воображении вставил я в таблицу T(V INTEGER) 10 млрд. записейА ты пробовал провернуть - без воображения, в реале - 1 (один) млрд ? Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 100000000 записей было добавлено в таблицу T ------ Информация о производительности ------ Время подготовки запроса = 0ms Время выполнения запроса = 5m 44s 13ms Current memory = 34 967 472 Max memory = 66 884 652 Memory buffers = 2 048 Reads from disk to cache = 237 Writes from cache to disk = 306 132 Чтений из кэша = 302 446 960 Умножить на 10 и будет миллиард. Только это почти час ждать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2014, 14:14 |
|
||
|
баги или не баги
|
|||
|---|---|---|---|
|
#18+
NickDeeУмножить на 10 и будет миллиард. Только это почти час ждать. А теперь чисто по приколу попробуй то же самое проделать с Оракулом. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2014, 14:36 |
|
||
|
баги или не баги
|
|||
|---|---|---|---|
|
#18+
NickDee100000000 записей было добавлено в таблицу T Время выполнения запроса = 5m 44s 13ms Memory buffers = 2 048 Reads from disk to cache = 237 Writes from cache to disk = 306 132 Чтений из кэша = 302 446 960Везучий. Или просто таблица без индекса и, само собой, fw = off ;-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2014, 14:42 |
|
||
|
баги или не баги
|
|||
|---|---|---|---|
|
#18+
Таблоид, в чём везучесть? :) проц 2.3 гигагерца (ноутбучный), винт на 5400 оборотов (ноутбучный), винда с 4 гигами памяти (ноутбучными), индексов нет, FW включен (никогда его не выключал). Упирается не в скорость винта, а в процессор. На твоём мега-железе оно разве не быстрей? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2014, 15:06 |
|
||
|
баги или не баги
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovА теперь чисто по приколу попробуй то же самое проделать с Оракулом. Его же ставить нужно :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2014, 15:12 |
|
||
|
баги или не баги
|
|||
|---|---|---|---|
|
#18+
NickDeeНа твоём мега-железе оно разве не быстрей?Не помню уже. Но я делал таблицу с другой структурой (там, помимо ID, было еще два поля: varchar(36) & bigint). Основная песня начинается после того, как построишь индексы на такой таблице. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2014, 15:30 |
|
||
|
баги или не баги
|
|||
|---|---|---|---|
|
#18+
NickDeeУмножить на 10 и будет миллиард. Только это почти час ждать. Можно немного ускорить (~25%), если завернуть в автономки по 1млн записей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2014, 15:30 |
|
||
|
баги или не баги
|
|||
|---|---|---|---|
|
#18+
afgmМожно немного ускорить (~25%), если завернуть в автономки по 1млн записей.1. 25% это много 2. не верю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2014, 15:33 |
|
||
|
баги или не баги
|
|||
|---|---|---|---|
|
#18+
hvlad1. 25% это много 2. не верю Соврал ~20% :) speed test Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2014, 15:50 |
|
||
|
баги или не баги
|
|||
|---|---|---|---|
|
#18+
В текущей версии птицы алгоритм слияния сейфпоинтов несколько неоптимален. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2014, 15:55 |
|
||
|
баги или не баги
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovВ текущей версии птицы алгоритм слияния сейфпоинтов несколько неоптимален. Забыл сказать, что гонял тест на 3.0 FW=ON ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2014, 16:02 |
|
||
|
баги или не баги
|
|||
|---|---|---|---|
|
#18+
afgmЗабыл сказать, что гонял тест на 3.0 FW=ON Уточняю: во всех существующих версиях Firebird этот алгоритм неоптимален. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2014, 16:28 |
|
||
|
баги или не баги
|
|||
|---|---|---|---|
|
#18+
dimitr "баги" отсутствуют в ФБ3, можешь не напрягаться А для первого диалекта? Или bigint теперь есть и там? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2014, 16:29 |
|
||
|
баги или не баги
|
|||
|---|---|---|---|
|
#18+
1 диалектА для первого диалекта? Или bigint теперь есть и там? есть и там ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2014, 16:32 |
|
||
|
баги или не баги
|
|||
|---|---|---|---|
|
#18+
afgm, тест делал так: recreate, commit, exec block, commit и далее по кругу fw=on 1. вставка 1х10М записей Execute time = 32s 343ms Execute time = 31s 297ms Execute time = 30s 625ms 2. вставка 10х1М записей Execute time = 31s 984ms Execute time = 33s 47ms Execute time = 32s 265ms ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2014, 16:37 |
|
||
|
баги или не баги
|
|||
|---|---|---|---|
|
#18+
dimitr1 диалектА для первого диалекта? Или bigint теперь есть и там? есть и там но можно только SELECT из него делать. В PSQL использовать не получится. Создать таблицу с полем BIGINT тоже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2014, 16:37 |
|
||
|
баги или не баги
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, мало того, что пальцем в небо, так ещё и мимо Когда (если) подумаешь головой, то поймёшь, что работа анду-лога в этом тесте до лампочки и никак не объяснит мифические 20% выигрыша при вставке пачками. А если потрудишься глянуть на графики загрузки CPU\IO, то может быть наступит хоть какое-то просветление. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2014, 16:40 |
|
||
|
баги или не баги
|
|||
|---|---|---|---|
|
#18+
hvladмало того, что пальцем в небо, так ещё и мимо Да, пожалуй. Слияние мелочи по одной записи тормозить не может, а лог транзакции убивается в обоих случаях ещё до начала массового слияния. Интересно было бы посмотреть на разницу скоростей если перед EB поставить явный savepoint... Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2014, 16:51 |
|
||
|
баги или не баги
|
|||
|---|---|---|---|
|
#18+
hvladтест делал так: recreate, commit, exec block, commit и далее по кругу именно так и делал Поднял память до 2 гигов (было 512) (DefaultDbCachePages = 131072) Страница 16к Firebird-3.0.0.31369-0_x64 Windows 7 Как ни кручу не могу заставить выполняться за одинаковое время. Куда ещё можно копнуть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2014, 17:03 |
|
||
|
баги или не баги
|
|||
|---|---|---|---|
|
#18+
afgmКуда ещё можно копнуть?Посмотри на загрузку CPU и IO, сравни. PS Я мерял при стандартных для супера 2048 страницах кеша. Сама страница у меня 8КБ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2014, 17:10 |
|
||
|
баги или не баги
|
|||
|---|---|---|---|
|
#18+
hvladПосмотри на загрузку CPU и IO, сравни. PS Я мерял при стандартных для супера 2048 страницах кеша. Сама страница у меня 8КБ Посмотрел загрузку CPU vs IO В случае большой транзакции сначала занят CPU (почти 25% т.е. 100% одно ядро) и меньше IO, а под конец наоборот. В случае 10 транзакций нагрузка идёт равномернее. Попробовал вернуть страницы на 2048 и вот результат: 1. вставка 1х10М записей Execute time = 25s 69ms Execute time = 26s 333ms Execute time = 26s 551ms 2. вставка 10х1М записей Execute time = 30s 389ms Execute time = 30s 826ms Execute time = 32s 293ms Немного растерян... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2014, 17:26 |
|
||
|
баги или не баги
|
|||
|---|---|---|---|
|
#18+
afgm, а теперь померяй в isql, и заодно приведи статистику коммитов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2014, 17:45 |
|
||
|
баги или не баги
|
|||
|---|---|---|---|
|
#18+
hvladafgm, а теперь померяй в isql, и заодно приведи статистику коммитовЕсли не лень, то и с большим кешем тоже. Там будет интереснее. Ну и наблюдай CPU\IO ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2014, 17:47 |
|
||
|
баги или не баги
|
|||
|---|---|---|---|
|
#18+
Симонов Денисно можно только SELECT из него делать. В PSQL использовать не получится. Создать таблицу с полем BIGINT тоже. Так это значит что нет. Не сохранить никуда, и сравнить не с чем. Why? С Boolean небось так же? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2014, 19:33 |
|
||
|
баги или не баги
|
|||
|---|---|---|---|
|
#18+
1 диалектНе сохранить никуда double не нравицца? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2014, 19:38 |
|
||
|
баги или не баги
|
|||
|---|---|---|---|
|
#18+
1 диалект, не с Boolean всё нормально ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2014, 22:34 |
|
||
|
баги или не баги
|
|||
|---|---|---|---|
|
#18+
dimitr1 диалектНе сохранить никуда double не нравицца? Выкрутиться, конечно, всегда можно, но непонятка одна: а как bigint противоречит 1-му диалекту, не поддерживается в нём по каким причинам? Просто БД у нас - легаси-стайл. На 3-й диалект не перевести в разумные сроки (а это значит - практически никогда). Жить как-бы можно (лисапедов понастроено на многие случаи), но как-то периодически плюшки пытаются пройти мимо по диалектному признаку, забывают отцы про первенца :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2014, 23:07 |
|
||
|
баги или не баги
|
|||
|---|---|---|---|
|
#18+
1 диалект, в обозримом будущем первенца вообще не станет. Так что лучше начинать готовиться к неизбежному заранее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2014, 00:00 |
|
||
|
баги или не баги
|
|||
|---|---|---|---|
|
#18+
1 диалекта как bigint противоречит 1-му диалекту, не поддерживается в нём по каким причинам? bigint просто нет в 1 диалекте. И вообще, bigint был добавлен только в 1.5. какой смысл что-то там модифицировать или добавлять для 1 диалекта, если 1 диалект - это совместимость со всеми старыми IB и FB? IB 4.x, 5.x, 6.x, FB 1.0. Да и драйверы, которые поддерживают только 1 диалект, bigint не поймут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2014, 00:04 |
|
||
|
баги или не баги
|
|||
|---|---|---|---|
|
#18+
dimitrв обозримом будущем первенца вообще не станет. Так что лучше начинать готовиться к неизбежному заранее. Категорично. Подозреваю, как только это случится - так, видимо, и закроются для нас новые версии FB на неопределённый (читай вечный) срок. Изменить ядро системы лоскутной (в изощрённом виде) автоматизации - это не просто у БД диалект сменить, а несколько бОльшая задача, причём, вообще за пределами АйТи. kdvbigint просто нет в 1 диалекте. И вообще, bigint был добавлен только в 1.5. какой смысл что-то там модифицировать или добавлять для 1 диалекта, если 1 диалект - это совместимость со всеми старыми IB и FB? IB 4.x, 5.x, 6.x, FB 1.0. Да и драйверы, которые поддерживают только 1 диалект, bigint не поймут. Всё так. Просто я думал что это не полностью отдельная ветка в коде, а лишь несколько case и только там где это необходимо (для несовместимых типов и т.п.). А совместимость с дровами, которые ничего кроме первого диалекта (образца царя гороха) не понимают - это вообще боюсь никому не нужно, они и FB скорее всего не понимают вообще, им IB подавай. Кстати, с прошедшим юбилеем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2014, 01:17 |
|
||
|
баги или не баги
|
|||
|---|---|---|---|
|
#18+
hvlad, Вот попробовал Сервер стартовал в режиме приложения и прогонял оба теста. По несколько прогонов делать не стал (там уже автоматизация просится) замеры через isql1 х 10млн10 х 1млнquerycommittotalquerycommittotaldelta (1x - 10x) E. timeWritesE. timeWritesE. timeWritesE. timeWritesE. timeWritesE. timeWritesE. timeWrites204824,979286640,57203025,5493069428,511307830,002204828,51332831-2,964-2137409625,651266641,1400926,7513067330,69307670,002409630,69234863-3,941-4190819227,597225422,617812530,2143066730,896307660,001230,89730768-0,683-1011638430,093143634,7281629234,8213065531,482307600,002231,484307623,337-1073276821,917719,1753059531,0923066630,995307600,001230,996307620,096-96 Результат как в Эксперте не повторился :( А вот с CPU/IO всё действительно интересно. При этом для 10х-версии предсказуемая пила, а для большой транзакции результат каждый раз разный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2014, 12:28 |
|
||
|
баги или не баги
|
|||
|---|---|---|---|
|
#18+
afgm, а если изменить приоритет на службы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2014, 12:50 |
|
||
|
баги или не баги
|
|||
|---|---|---|---|
|
#18+
afgm, несколько подсказок: - тест 1x10М делает коммит 1 раз, соотв. 1 раз пишет грязный кеш на диск, а вот тест 10х1М делает 10 коммитов - во время коммита запись на диск происходит быстрее, чем во время выполнения запроса, отсюда пила во втором случае - чем больше кеш, тем позже начнётся запись на диск и тем больше работы останется коммиту - отдельно про "эффект IBE" : при расширении таблицы новые страницы PIP помечаются таким образом, что к их записи на диск приведёт коммит любой тр-ции (не обязательно нашей). Из-за careful writes перед записью PIP нужно сначала записать все соотв. DP. Таким образом коммит любой тр-ии приведёт к записи всего кеша. Нужно ли говорить, что после выполнения запроса IBE стартует и завершает несколько своих тр-ций, которые и пишут весь грязный кеш (а нам кажется, что это сделал наш запрос, хотя в статистике этого и не видно) Главное - я уверен, что в тесте 1х10М ты не увидел падения загрузки ни у CPU, ни у IO - а это означает, что скорость заливки не зависит от кол-ва записей заливаемых в одной тр-ции. Это многократно подтверждается наблюдением за работой рестора, например. Есть другие факторы, связанные с размером кеша и частотой коммитов, но заливка сама-по-себе никак не зависит от кол-ва записей (по крайней мере это не измеримо на практике). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2014, 14:02 |
|
||
|
баги или не баги
|
|||
|---|---|---|---|
|
#18+
Симонов Дениса если изменить приоритет на службы? Попозже обязательно попробую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2014, 14:26 |
|
||
|
баги или не баги
|
|||
|---|---|---|---|
|
#18+
hvladIBE стартует и завершает несколько своих тр-ций, которые и пишут весь грязный кеш (а нам кажется, что это сделал наш запрос, хотя в статистике этого и не видно) В реальной жизни при многих коннектах будет именно так. hvladГлавное - я уверен, что в тесте 1х10М ты не увидел падения загрузки ни у CPU, ни у IO - а это означает, что скорость заливки не зависит от кол-ва записей заливаемых в одной тр-ции. Увидел вот что: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2014, 14:46 |
|
||
|
баги или не баги
|
|||
|---|---|---|---|
|
#18+
afgmПоднял память до 2 гигов (было 512) Как там у Классика? - Он над нами издевался... (ну и далее по тексту.) :-) afgmУвидел вот что: А ты чо хотел-то? Если мозгов нет... будет винт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2014, 10:02 |
|
||
|
баги или не баги
|
|||
|---|---|---|---|
|
#18+
Di_LIneА ты чо хотел-то? Если мозгов нет... будет винт. Ну у меня то всё просто. Данная конкретная БД работает не на выделенном сервере (она служебная), но в неё идёт заливка иногда. И большой перебор. Увеличивая размер кеша я пытался обезопасить СУБД от вытеснения файлового кеша операционной системы другими файловыми операциями. На толстых запросах всё хорошо, а вот на массовых заливках большой кеш мешает. Или я ничего не понял. Надо будет уменьшить до стандартных 2048 и погонять тесты заливки, апдейтов и селектов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2014, 10:31 |
|
||
|
|

start [/forum/topic.php?all=1&fid=40&tid=1563230]: |
0ms |
get settings: |
5ms |
get forum list: |
15ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
36ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
67ms |
get tp. blocked users: |
1ms |
| others: | 219ms |
| total: | 360ms |

| 0 / 0 |
