powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Firebird vs MS SQL
25 сообщений из 143, страница 2 из 6
Firebird vs MS SQL
    #39775347
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MolochnikНикакого, я просто объяснил почему несмотря на критическую секцию здесь используются две транзакции а не одна

это как раз и есть чушь. Паттерн с использованием двух транзакций происходит от нежелания закрывать недофетченный курсор, при завершении единственной транзакции которая обновила запись. От наличия нескольких приложений работающих с теми же таблицами это никак не зависит.

> Поля используются практически все, их очень много, чтобы по отдельности выписывать.

ну да. А то что это влияет на ширину резалтсета для сортировки конечно не думаем. Да и тащить по сети лишнее это конечно круто, она же жирная выдержит.

> в WHERE поля без уточнения, согласен, но это косметика.

Во-первых это потенциальные грабли, на которые со временем наступишь. А во-вторых вот смотрю я сейчас на твой запрос и не понимаю можно ли его улучшить или нет, потому что не понятно что именно фильтруется.

> Условий фильтрации много, ну и что? Все нужны.

Его наверняка можно упростить, пусть даже не для сервера, а для самого себя чтобы понимать проще было. ДА и не верю я что нельзя придумать чуть более прямую схему фильтрации.
...
Рейтинг: 0 / 0
Firebird vs MS SQL
    #39775355
Molochnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денисэто как раз и есть чушь. Паттерн с использованием двух транзакций происходит от нежелания закрывать недофетченный курсор, при завершении единственной транзакции которая обновила запись. От наличия нескольких приложений работающих с теми же таблицами это никак не зависит.

Всегда все пишут, что пишущая транзакция должна быть короткой при многопользовательском доступе.
Если и селект и апдейт засунуть в одну долгую пишущую транзакцию, то что это никак не повлияет на доступ к тем же таблицам из другого приложения? Особенно учитывая что запросы фактически непрерывно.

Симонов Денисну да. А то что это влияет на ширину резалтсета для сортировки конечно не думаем. Да и тащить по сети лишнее это конечно круто, она же жирная выдержит.

Для FB используется ROWS 1, для MS SQL - TOP 1. Увеличивать и так гигантский текст SQL перечислением нескольких десятков полей особо желания не было. Этот так важно?
Симонов ДенисВо-первых это потенциальные грабли, на которые со временем наступишь.

Это понятно
Симонов ДенисЕго наверняка можно упростить, пусть даже не для сервера, а для самого себя чтобы понимать проще было. ДА и не верю я что нельзя придумать чуть более прямую схему фильтрации.
Сомнительно. Все условия разнородные, скорее всего упростить можно только уменьшив количество возможностей, чего не хотелось бы.
...
Рейтинг: 0 / 0
Firebird vs MS SQL
    #39775358
Vlad F
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MolochnikVlad FMolochnik,
Это очень даже не странно, это стандарт.
Странно что в микрософте об этом знали :)
Да это, поди, сделали еще те, у кого майкрософт это дело скупила.))
...
Рейтинг: 0 / 0
Firebird vs MS SQL
    #39775361
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MolochnikЕсли и селект и апдейт засунуть в одну долгую пишущую транзакцию, то что это никак не повлияет на доступ к тем же таблицам из другого приложения?

а почему это она должна быть долгой? В твоём SELECT выбирается одна жалкая запись. Если это делается долго, то нужно запрос оптимизировать.

> Этот так важно?

пока не увидел план сказать не могу, но почему-то у меня подозрения что сортировка не планом ORDER идет, а через SORT и тогда это действительно важно

> Сомнительно. Все условия разнородные, скорее всего упростить можно только уменьшив количество возможностей, чего не хотелось бы.

я уверен что это можно сделать. Просто вы проектируете в лоб: одно поле — один фильтр
...
Рейтинг: 0 / 0
Firebird vs MS SQL
    #39775388
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Molochnik,

про потоки.
- в одном коннекте у ФБ параллельные операции не работают. Они будут ждать друг друга и выполняться последовательно.
В других серверах точно так же. 1 поток - 1 коннект.
- если потоки сериализуются по условиям задачи, то зачем они вообще нужны? Ради прикола, написать какой-то интересный в данный момент код?
...
Рейтинг: 0 / 0
Firebird vs MS SQL
    #39775393
Фотография Дегтярев Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MolochnikСмысл этого простой - очередь. Каждый поток по очереди выбирает первую доступную запись для обработки и помечает ее как используемую. Если потоки будут читать одновременно они могут выбрать одну и туже запись.

сделайте один поток, ответственный за распределение заданий из очереди

зы
поговаривают зубы можно per rectum удалять, но зачем
...
Рейтинг: 0 / 0
Firebird vs MS SQL
    #39775422
Molochnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов ДенисMolochnikЕсли и селект и апдейт засунуть в одну долгую пишущую транзакцию, то что это никак не повлияет на доступ к тем же таблицам из другого приложения?
а почему это она должна быть долгой? В твоём SELECT выбирается одна жалкая запись. Если это делается долго, то нужно запрос оптимизировать.

В реальности две таблицы большие остальные очень маленькие. С увеличением числа записей скорость выборки в FB ощутимо падает, при наличии 10 тыс в двух больших таблицах еще более менее, но если по 50 тыс то каждый запрос секунды две длится. В MS SQL скорость в первом приближении от размера не зависит. Как я уже говорил таблицы, поля и индексы обеих баз одинаковы и тексты запросов тоже.
Симонов Дениспока не увидел план сказать не могу, но почему-то у меня подозрения что сортировка не планом ORDER идет, а через SORT и тогда это действительно важно

Посмотрел в ibexpert там действительно вначале идет PLAN SORT...
Симонов Денися уверен что это можно сделать. Просто вы проектируете в лоб: одно поле — один фильтр

Да было бы неплохо

kdvMolochnik,
про потоки.
- в одном коннекте у ФБ параллельные операции не работают. Они будут ждать друг друга и выполняться последовательно.
В других серверах точно так же. 1 поток - 1 коннект.

так и устроено один поток - один коннект.
kdvMolochnik,
- если потоки сериализуются по условиям задачи, то зачем они вообще нужны? Ради прикола, написать какой-то интересный в данный момент код?
Работа с базой не является основной целью программы, а полезная деятельность отлично распараллеливается. Критическая секция используется только для выборки данных.
Дегтярев Евгенийсделайте один поток, ответственный за распределение заданий из очереди

Так делать не хочу поскольку в данном случае считаю это излишним усложнением. И зачем тогда вообще сервер баз данных использовать? Сделал всю работу с бд через один поток и радуйся. Работа с файловыми таблицами парадокса быстрее любого SQL сервера на порядок. Там где не используется бд, этот механизм (один поток для обработки информации) я использую часто, но с базой желания нет. Тем более как я уже сказал MS SQL работает как и надо.
...
Рейтинг: 0 / 0
Firebird vs MS SQL
    #39775428
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MolochnikС увеличением числа записей скорость выборки в FB ощутимо падает, при наличии 10 тыс в двух больших таблицах еще более менее, но если по 50 тыс то каждый запрос секунды две длится. В MS SQL скорость в первом приближении от размера не зависит.Ну так там и кеш не 16МБ, не так ли ?
...
Рейтинг: 0 / 0
Firebird vs MS SQL
    #39775450
Фотография o_v_a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну и уж истины ради только...
Увидим мы статистику выполнения реального запроса, который "тормозит в сравнении с таким же на MS SQL) или нет? А также конфиг сервера firebird SQL и заголовок статистики базы ?
...
Рейтинг: 0 / 0
Firebird vs MS SQL
    #39775460
Фотография Дегтярев Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MolochnikТем более как я уже сказал MS SQL работает как и надо.
но это не значит что сделано все как надо

Если инкапсулировать логику работы с очередью, то реализации могут максимально использовать особенности выбранных способов хранения и нюансы этой логики не будут размазаны по воркерам
...
Рейтинг: 0 / 0
Firebird vs MS SQL
    #39775486
Molochnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Файл конфига FB 3 приложен. Для FB2.5 настроек специальных никогда не делалось.
...
Рейтинг: 0 / 0
Firebird vs MS SQL
    #39775489
Molochnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот лог с тестированием одного селекта при 50 тыс записей для FB И MS SQL, работает только один поток.
Первые записи - идет выборка с FB, последние - с MS
...
Рейтинг: 0 / 0
Firebird vs MS SQL
    #39775499
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Molochnik#hqbird traceapi plugin should be in plugins folder!
TracePlugin = fbtrace2db

так у тебя HQBird? Или просто скопировал бездумно?
...
Рейтинг: 0 / 0
Firebird vs MS SQL
    #39775502
Фотография Дегтярев Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
400-500ms на получение задачи из очереди это "как и надо"?
...
Рейтинг: 0 / 0
Firebird vs MS SQL
    #39775513
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дегтярев Евгений,

у него фильтрация записи мутная. Т.е. если сам SELECT запрос медленный, то там чего не делай с прикладой всё равно работать будет отвратительно
...
Рейтинг: 0 / 0
Firebird vs MS SQL
    #39775519
Molochnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дегтярев ЕвгенийЕсли инкапсулировать логику работы с очередью, то реализации могут максимально использовать особенности выбранных способов хранения и нюансы этой логики не будут размазаны по воркерам
По мне текущая архитектура выглядит логично - каждый поток выбирает подходящую ему незанятую запись и обрабатывает ее столько сколь считает нужным. Ваш вариант с одним потоком обработчиком базы сильно усложняет систему потому, что НЕ ВСЕ записи подходят потоку и время обработки записи потоком неизвестно.
...
Рейтинг: 0 / 0
Firebird vs MS SQL
    #39775522
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MolochnikКритическая секция используется только для выборки данных.

к чему тогда откровения по поводу потоков и критических секций? Это уже внутреннее дело вашего приложения, которые к работе с БД не относятся.
...
Рейтинг: 0 / 0
Firebird vs MS SQL
    #39775527
Molochnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денистак у тебя HQBird? Или просто скопировал бездумно?
да тупо скопировал оптимизированный конфиг для суперсервера. Для классик и суперклассик параметры в файле меняю на рекомендуемые оптимизированные с того же сайта.
Дегтярев Евгений400-500ms на получение задачи из очереди это "как и надо"?
ну, скажем так приемлемо. Сама обработка записи может десяток секунд идти
kdvMolochnikКритическая секция используется только для выборки данных.

к чему тогда откровения по поводу потоков и критических секций? Это уже внутреннее дело вашего приложения, которые к работе с БД не относятся.
Да, ни к чему конечно, к работе с БД это не относится. Ошибся и заметил это после отправки вопроса
...
Рейтинг: 0 / 0
Firebird vs MS SQL
    #39775532
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MolochnikПо мне текущая архитектура выглядит логично - каждый поток выбирает подходящую ему
незанятую запись и обрабатывает ее столько сколь считает нужным.

Она логична, но при её реализации ты допустил две ошибки:
1) Длинная читающая транзакция не позволяет видеть изменения флага параллельными потоками,
что на корню рушит логику.
2) Подавленное исключение не позволяет заметить ошибку обновления и пропустить уже
захваченную другим потоком запись.

Проще говоря, твоя система обработки не работает от слова "совсем" на сервере где нет
грязного чтения. MS SQL - твоё всё и альтернатив нет.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Firebird vs MS SQL
    #39775537
Molochnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovОна логична, но при её реализации ты допустил две ошибки:
1) Длинная читающая транзакция не позволяет видеть изменения флага параллельными потоками,
что на корню рушит логику.

У меня же читающая транзакция read_commited. Если параллельный поток закоммитил данные, неужели читающая другого этого не увидит? Как же у меня она вообще работает тогда? А она работает, причем без исключений
...
Рейтинг: 0 / 0
Firebird vs MS SQL
    #39775539
Фотография Дегтярев Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MolochnikПо мне текущая архитектура выглядит логично - каждый поток выбирает подходящую ему незанятую запись и обрабатывает ее столько сколь считает нужным. Ваш вариант с одним потоком обработчиком базы сильно усложняет систему потому, что НЕ ВСЕ записи подходят потоку и время обработки записи потоком неизвестно.
- не вижу ничего логичного
- не вижу усложнения
- поделите записи на группы и отдавайте обработчику нужную
- время обработки тут вообще причем?
...
Рейтинг: 0 / 0
Firebird vs MS SQL
    #39775540
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MolochnikКак же у меня она вообще работает тогда?

Это в народе называется "дуракам везёт".

MolochnikА она работает, причем без исключений
Это естественно, потому что ты глушишь их секцией except.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Firebird vs MS SQL
    #39775545
Molochnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дегтярев Евгений- поделите записи на группы и отдавайте обработчику нужную
/quot]
Это фактически означает сдублировать работу с бд в памяти одного потока. Можно конечно, но скорости это не прибавит как уже выяснилось.
Dimitry SibiryakovЭто в народе называется "дуракам везёт".

Все время же везти не может
MolochnikА она работает, причем без исключений
Это естественно, потому что ты глушишь их секцией except.

Я глушу там просто на всякий случай, по инерции, по логике хуже не будет. Исключения в дебаггере не блокируются и всегда вылазят если что. Если бы были глюки я бы уже давно этим озаботился. А так просто медленно. Если записей 100, то практически незаметно, вот с большим числом сразу это вылезло.
...
Рейтинг: 0 / 0
Firebird vs MS SQL
    #39775546
Molochnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дегтярев Евгений- поделите записи на группы и отдавайте обработчику нужную
- время обработки тут вообще причем?
Это фактически означает сдублировать работу с бд в памяти одного потока. Можно конечно, но скорости это не прибавит как уже выяснилось.
Dimitry SibiryakovЭто в народе называется "дуракам везёт".

Все время же везти не может
Dimitry SibiryakovЭто естественно, потому что ты глушишь их секцией except.

Я глушу там просто на всякий случай, по инерции, по логике хуже не будет. Исключения в дебаггере не блокируются и всегда вылазят если что. Если бы были глюки я бы уже давно этим озаботился. А так просто медленно. Если записей 100, то практически незаметно, вот с большим числом сразу это вылезло.
...
Рейтинг: 0 / 0
Firebird vs MS SQL
    #39775553
Фотография Дегтярев Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MolochnikЭто фактически означает сдублировать работу с бд в памяти одного потока. Можно конечно, но скорости это не прибавит как уже выяснилось.
оставим тему про дублирование, я понял что для вас значит усложнение...

вернемся к скорости
в вашем случае выбрать одну запись или 10 по времени одинаково, потому выхлоп будет
но сначала оптимизируйте запрос/структуру (которых мы так и не увидели)
в мсскл у вас та же проблема - 0.5 сек для выборки 1 записи из очереди много
...
Рейтинг: 0 / 0
25 сообщений из 143, страница 2 из 6
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Firebird vs MS SQL
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]