базы данных
- From
- Denis Balashov (2:5010/103.12)
- To
- Alexander Zatvornitskiy ()
- Date
- 2003-04-19T18:16:56Z
- Area
- SU.WINDOWS.NT.PROG
Приветствую Вас, Alexander!
[было это 19.04.2003] Alexander Zatvornitskiy написал к Denis Balashov:
DB>>>> и _SQL Server_ по крайней мере referential integrity и
DB>>>> транзакции есть, в отличие от mysql.
AZ>>> Interbase - кррасота. Качай-не хочу.
DB>> ну не такая уж он и красота =) красота - это MSSQL. Но он другого
DB>> рода. потяжелее и всё такое.
AZ> А чем по-твоему ib хуже mssql? Делал на ib программы с приличной
AZ> загрузкой бд, видел программы с огромной - по-моему хороший сервер.
долго видел? :-) в смысле - только видел или использовал на протяжении месяца/двух/трёх?
[прорубило on]
1) оптимизатор хоть и есть, но ему еще шагать (если не бежать) до MSSQL/Oracle/DB2. На простейших трёхкратной вложенности запросах - лажает дай боже. Спасает только хинтами указывать нужные индексы.
2) регулярные сообщения о ошибках сервера при изменении метаданных. Причем сложноповторимых в искусственных условиях. Регулярно - это с момента выхода IB в OpenSource и по сей день. Справедливости ради скажу, что в Yaffil добились значительных успехов в этом направлении.
2а) всякие интересные "фичи" версионника (или сервера в частности?). Я про garbage collection. Удаляешь 10000 записей, а следующий select в который могли бы попасть эти записи задерживается по причине занятости сервера на уборке мусора. Да, отключается GC и можно его делать при backup. Но в других серверах такое всегда выполняется прозрачно и в фоне.
3) Полное нежелание использовать второй (третий, четвертый) процессоры на SMP-системах. Это я про superserver. При выполнии сложных запросов система стоит раком при 100% загрузке процессоров. Помогает переключение (affinity mask) на один процессор, но это не выход, это крайняя мера. Происходит из-за архитектуры планировщика/оптимизатора и видимо чего-то еще внутри. Доберутся и туда руки разработчиков, но когда?
Справедливости ради стоит сказать, что отчасти положение спасает Yaffil версии Classic, который на каждый коннект порождает процесс, в котором запросы теоретически отрабатывают параллельно на SMP. Но тут бьёт второй конец палки - расход памяти. В Classic кэш БД в каждом процессе свой. Посему удельный расход памяти на клиента больше и не так эффективен, чем у того же MSSQL.
4) срубить зависший (долго выполняющийся) запрос нельзя.
5) проблемы с живучестью БД при падении ОС. В плане живучести на световые годы опережает Paradox :-) но... Хотя это критично только для единичных установок (типа один клиент, он же сервер для учета посетителей). Ну короче принцип - поставил Interbase, поставь UPS :-) За три года стояния IB (теперь Yaffil) сервера в одной организации ездил туда 3 раза ковырять БД на предмет починки. К слову, всё проходило удачно.
6) средства разработки конечно же еще есть и для IB, но ничего похожего на MSSQL Enterprise Manager вообще и его Diagrams в частности не видел.
6а) Проблемы с OLEDB-провайдеры (и ODBC-коннекторами). Они есть, они как-то работают, но: они платные, проблем в них хватает, в том числе и с совместимостью (Interbase, Firebird, Yaffil). Так что надежда за 20 минут поднять данные в сводные таблицы в Excel надеждой и останется. Про тот же IIS (с XML) я и говорить не буду.
так что, подводя черту, для себя я раз и навсегда определил правило:
- Interbase, если не больше 5-10 юзеров _и_ железо не очень современное,
- MSSQL в ином другом случае
[прорубило off]
Denis.
--- [CDMA][win2000][Courier V.Evr] [dba<собак>hotbox.ru][ICQ 99798225] ---
* Origin: Давайте смотpеть пpавде в глаза - я незабываем. (2:5010/103.12)