powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Посоветуйте СУБД
78 сообщений из 78, показаны все 4 страниц
Посоветуйте СУБД
    #37739402
Wol_fi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вообщем расклад такой - таблица, в ней следующие поля - INT(11) INT(20) VARCHAR(6) VARCHAR(15).
В таблицу будет примерно 100-200 инсертов в секунду, и 5-10 селектов в секунду (селекты большие, до 10к строк). Нужна субд способная всё это переварить с минимальными затратами процессорного времени, и при этом иметь вменяемый размер бд . Записей в таблице будет несколько миллиардов . Пока что выбор пал на MongoDB, но уж очень прожорливый он что касается дискового пространства. Спасибо.
...
Рейтинг: 0 / 0
Посоветуйте СУБД
    #37739407
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wol_fiПока что выбор пал на MongoDB, но уж очень прожорливый он что касается дискового пространства. Спасибо.
Это не так. BSON достаточно компактный формат.
...
Рейтинг: 0 / 0
Посоветуйте СУБД
    #37739422
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wol_fiВ таблицу будет примерно 100-200 инсертов в секунду, и 5-10 селектов в секунду (селекты
большие, до 10к строк).

Нагрузки мизерные, любая справится. Используйте ту, для которой у заказчика есть DBA.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Посоветуйте СУБД
    #37739438
Alexander Ryndin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какая-то прям мода на MongoDB. Коллективное помешательство. :)
...
Рейтинг: 0 / 0
Посоветуйте СУБД
    #37739532
Wol_fiНужна субд способная всё это переварить с минимальными затратами процессорного времени, и при этом иметь вменяемый размер бд
Поскольку вас волнует только скорость вставки и размер БД, идеальный выбор для вас -- просто писать в файл. Наивысшая скорость и компактность.
...
Рейтинг: 0 / 0
Посоветуйте СУБД
    #37739543
Wol_fi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Евгений Мирошниченко aka mirПоскольку вас волнует только скорость вставки и размер БД, идеальный выбор для вас -- просто писать в файл. Наивысшая скорость и компактность.
А самое главное асинхронность, попробуйте одновременно со 100 клиентов писать в файл, что получите? Или пардон, их в очередь ставить как на почте России?:)
...
Рейтинг: 0 / 0
Посоветуйте СУБД
    #37739660
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wol_fiЕвгений Мирошниченко aka mirПоскольку вас волнует только скорость вставки и размер БД, идеальный выбор для вас -- просто писать в файл. Наивысшая скорость и компактность.
А самое главное асинхронность, попробуйте одновременно со 100 клиентов писать в файл, что получите? Или пардон, их в очередь ставить как на почте России?:)Есть стандартные приемы. Думаешь СУБД не в файл пишут, а параллелят запись с помощью святого духа? )))
...
Рейтинг: 0 / 0
Посоветуйте СУБД
    #37740006
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wol_fiИли пардон, их в очередь ставить как на почте России?:)

А хотя бы и ставить. На 200 записях в секунду это совершенно пофиг.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Посоветуйте СУБД
    #37740683
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovНа 200 записях в секунду это совершенно пофиг.

А 10 фулсканов по 50ГБ каждый?
...
Рейтинг: 0 / 0
Посоветуйте СУБД
    #37740794
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей АрсеньевDimitry SibiryakovНа 200 записях в секунду это совершенно пофиг.

А 10 фулсканов по 50ГБ каждый?вроде топикстартеру читать не нужно, только писать
...
Рейтинг: 0 / 0
Посоветуйте СУБД
    #37740798
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> вроде топикстартеру читать не нужно, только писать

Тогда пусть пишет в /dev/null и не парицо!
Производительность будет огого!
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Посоветуйте СУБД
    #37740804
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergSuperвроде топикстартеру читать не нужно, только писатьWol_fiВ таблицу будет примерно 100-200 инсертов в секунду, и 5-10 селектов в секунду (селекты большие, до 10к строк) .
...
Рейтинг: 0 / 0
Посоветуйте СУБД
    #37740805
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergSuperвроде топикстартеру читать не нужно, только писать
Wol_fiи 5-10 селектов в секунду
...
Рейтинг: 0 / 0
Посоветуйте СУБД
    #37740827
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wol_fiЕвгений Мирошниченко aka mirПоскольку вас волнует только скорость вставки и размер БД, идеальный выбор для вас -- просто писать в файл. Наивысшая скорость и компактность.
А самое главное асинхронность, попробуйте одновременно со 100 клиентов писать в файл, что получите? Или пардон, их в очередь ставить как на почте России?:) мультиплеерная игра без сокетов и p2p (общение через файл, расположенный на сетевом ресурсе)
...
Рейтинг: 0 / 0
Посоветуйте СУБД
    #37740853
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей АрсеньевА 10 фулсканов по 50ГБ каждый?

Зачем "фул"? Мой телепатер говорит, что аффтару нужны исключительно выборки класса "Х
последних записей".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Посоветуйте СУБД
    #37740968
Wol_fi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SiemarglWol_fiпропущено...

А самое главное асинхронность, попробуйте одновременно со 100 клиентов писать в файл, что получите? Или пардон, их в очередь ставить как на почте России?:)Есть стандартные приемы. Думаешь СУБД не в файл пишут, а параллелят запись с помощью святого духа? )))
Да вот только мне кажется, что у меня не получится решить вопрос очерёдности лучше чем у команды программистов любой СУБД.

Dimitry Sibiryakov
Зачем "фул"? Мой телепатер говорит, что аффтару нужны исключительно выборки класса "Х
последних записей".


Ваш телепатер барахлит, небось на aliexpress заказывали?:)

По поводу выборок - селекты могут быть как и по последним записям, так и WHERE `x`<10 AND `y`='blablabla' AND z>100

Чтобы было понятней - имеется api веб-ресурса с нагрузкой примерно 100-200 запросов в секунду, нужно записывать каждый запрос (ip, время, id-пользователя, etc), ну и далее уже из этих записей работать некоторым службам.
...
Рейтинг: 0 / 0
Посоветуйте СУБД
    #37741003
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wol_fi По поводу выборок - селекты могут быть как и по последним записям, так и WHERE `x`<10 AND `y`='blablabla' AND z>100 То бишь инициатор выборок человек (не робот) и доступа к записям последней секунды не требуется.
Тогда самый простой путь: вебсервер кидает все запросы в журнал, который периодически оптом грузится в любую СУБД для анализа.
Хотя вам лично я посоветую другой путь: возьмите любую экзотическую базу и подробно напишите грабли на которые наступили.
...
Рейтинг: 0 / 0
Посоветуйте СУБД
    #37741072
Alexander Ryndin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SERG1257Wol_fi По поводу выборок - селекты могут быть как и по последним записям, так и WHERE `x`<10 AND `y`='blablabla' AND z>100 То бишь инициатор выборок человек (не робот) и доступа к записям последней секунды не требуется.
Тогда самый простой путь: вебсервер кидает все запросы в журнал, который периодически оптом грузится в любую СУБД для анализа.
Хотя вам лично я посоветую другой путь: возьмите любую экзотическую базу и подробно напишите грабли на которые наступили.Да, да. Поддерживаю )
...
Рейтинг: 0 / 0
Посоветуйте СУБД
    #37741074
Wol_fi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SERG1257Wol_fi По поводу выборок - селекты могут быть как и по последним записям, так и WHERE `x`<10 AND `y`='blablabla' AND z>100 То бишь инициатор выборок человек (не робот) и доступа к записям последней секунды не требуется.
Тогда самый простой путь: вебсервер кидает все запросы в журнал, который периодически оптом грузится в любую СУБД для анализа.
Хотя вам лично я посоветую другой путь: возьмите любую экзотическую базу и подробно напишите грабли на которые наступили.
Тоже подумал сначала в эту сторону, но сервис коммерческий, a заказчик не очень щедрый на железные ресурсы:) Каждый запрос тянет финансовую транзакцию, которая тянет статистику и биллинг, то есть данные могут понадобится real-time до секунды (пользователя запросил выплату, или статистику), и при этом весь этот механизм должен тянуть сервер Intel® Core™ i7-2600 quad core с 6тб дискового пространства и 16гб оперативки. Бекенд сервиса крутится на PHP и мускуле. Возможности все переписать с нуля на чём-то, что шустрее php - нет, взялся за недоделанную предыдущими исполнителями работу. Так вот смысл в том, что бекендом сервер и так постоянно нагружен, нужно вклинить в него при этом статистику, чтобы не слёг от перегруза. Понимаю что по нормальному, нужно отделить мух от котлет - бизнес-логику на один сервер, бд на другой, статистику на третий - но увы сервер тут один. Поэтому собственно и интересуюсь, какая субд справится с поставленной задачей с минимальным затратами ресурсов.
...
Рейтинг: 0 / 0
Посоветуйте СУБД
    #37741110
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wol_fi какая субд справится с поставленной задачейMySQL ибо оно уже стоит. ЛЮБАЯ другая субд это риск.
Wol_fi данные могут понадобится real-time до секундыМогут или понадобятся решает заказчик и только он. Нормальный вменяемый пользователь поймет, если большими буквами будет написано что данные доступны только до последнего часа или минуты (минута уже достаточно хороший интервал буферизации)
Wol_fi Тоже подумал сначала в эту сторону, но сервис коммерческий, a заказчик не очень щедрый на железные ресурсы:)В отличии от переделок софта, затраты на железо гораздо надежнее. Вероятность поймать проблемы после установки нового сервера (процессора, памяти, диска) конечно же есть, но она не сравнима с вероятностью огрести после установки патча или новой субд. И если заказчик на это не идет ТО ЗАКАЗЧИКА ДАННАЯ ПРОБЛЕМА НЕ ТРОГАЕТ.
Признайтесь честно, вам захотелось потрогать этот MongoDB в условиях приближенных к боевым.
...
Рейтинг: 0 / 0
Посоветуйте СУБД
    #37741157
Wol_fi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SERG1257Wol_fi какая субд справится с поставленной задачейMySQL ибо оно уже стоит. ЛЮБАЯ другая субд это риск.
Wol_fi данные могут понадобится real-time до секундыМогут или понадобятся решает заказчик и только он. Нормальный вменяемый пользователь поймет, если большими буквами будет написано что данные доступны только до последнего часа или минуты (минута уже достаточно хороший интервал буферизации)
Wol_fi Тоже подумал сначала в эту сторону, но сервис коммерческий, a заказчик не очень щедрый на железные ресурсы:)В отличии от переделок софта, затраты на железо гораздо надежнее. Вероятность поймать проблемы после установки нового сервера (процессора, памяти, диска) конечно же есть, но она не сравнима с вероятностью огрести после установки патча или новой субд. И если заказчик на это не идет ТО ЗАКАЗЧИКА ДАННАЯ ПРОБЛЕМА НЕ ТРОГАЕТ.
Признайтесь честно, вам захотелось потрогать этот MongoDB в условиях приближенных к боевым.
Тонко:)
Трогайте
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
$connection = new Mongo();
$db = $connection->test;
$time_start = microtime();
for($i=0;$i<=100000000;$i++)
{
$db->insert(array(
'a' => mt_rand(),
'b' => md5(chr(mt_rand(33,126)))
));
}
echo microtime() - $time_start;


Вы видимо работаете в параллельной вселенной. Так как в этой адекватный заказчик, понимающий все тонкости попадается редко. Это к сожалению не такой случай. А мускульные InnoDB и MyISAM очень частенько отказывают|ложатся при больших размерах, что в этом случае не очень хорошо.
...
Рейтинг: 0 / 0
Посоветуйте СУБД
    #37741169
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор$connection = new Mongo();
$db = $connection->test;
$time_start = microtime();
for($i=0;$i<=100000000;$i++)
{
$db->insert(array(
'a' => mt_rand(),
'b' => md5(chr(mt_rand(33,126)))
));
}
echo microtime() - $time_start;

Интересно, что ЭТИМ пытались измерить...
...
Рейтинг: 0 / 0
Посоветуйте СУБД
    #37741175
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wol_fiЧтобы было понятней - имеется api веб-ресурса с нагрузкой примерно 100-200 запросов в секунду, нужно записывать каждый запрос (ip, время, id-пользователя, etc), ну и далее уже из этих записей работать некоторым службам.

У меня дежавю, или это уже недавно где-то было? Еще один студент с курсачем?
...
Рейтинг: 0 / 0
Посоветуйте СУБД
    #37741184
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wol_fiдолжен тянуть сервер Intel® Core™ i7-2600 quad core...

Чего, простите, Вы назвали сервером???
...
Рейтинг: 0 / 0
Посоветуйте СУБД
    #37741188
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wol_fi взялся за недоделанную предыдущими исполнителями работу.

Напрасно.. работа не Вашего уровня...

Wol_fiПонимаю

Вряд ли...
...
Рейтинг: 0 / 0
Посоветуйте СУБД
    #37741203
Wol_fi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pkarklinавтор$connection = new Mongo();
$db = $connection->test;
$time_start = microtime();
for($i=0;$i<=100000000;$i++)
{
$db->insert(array(
'a' => mt_rand(),
'b' => md5(chr(mt_rand(33,126)))
));
}
echo microtime() - $time_start;

Интересно, что ЭТИМ пытались измерить...
Этим? Это синтетический тест на время в PHP среде на вставку 100000000 строк в бд "test" , по два столбца в каждой, первый - int , второй - строка (хеш от рандомного символа). Привёл для сравнения, любой кто знает php напишет без проблем аналог для mysql. Естественно в зависимости от железа время будет различным. Можете добавить memory_get_usage() | memory_get_peak_usage() по вкусу. Ваш К.О.
...
Рейтинг: 0 / 0
Посоветуйте СУБД
    #37741210
Wol_fi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pkarklinWol_fiдолжен тянуть сервер Intel® Core™ i7-2600 quad core...

Чего, простите, Вы назвали сервером???
<b>физическим </b> сервером я назвал вот это - EX4 ; В качестве же вебсерверов - apache+nginx.
...
Рейтинг: 0 / 0
Посоветуйте СУБД
    #37741337
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wol_fiЭто синтетический тест на время

Спрошу еще раз... Вы этим тестом пытались измерить что? Быстродействие чего?

Wol_fiЕстественно в зависимости от железа время будет различным.

Угу. А если еще и тест переписать, то и на порядки на одном и том же железе.

авторсервером я назвал вот это

Простите, но это не сервер... Давайте, еще айфоны сервером будем называть...
...
Рейтинг: 0 / 0
Посоветуйте СУБД
    #37741340
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pkarklinавторсервером я назвал вот это
Простите, но это не сервер... Давайте, еще айфоны сервером будем называть...
Сервер (грубо говоря, слуга) - это то, что обслуживает кого-то/что-то. Отказоустойчивость, производительность и т.п. не имеют прямого отношения к делу.
...
Рейтинг: 0 / 0
Посоветуйте СУБД
    #37741349
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor MetelitsaСервер (грубо говоря, слуга) - это то, что обслуживает кого-то/что-то. Отказоустойчивость, производительность и т.п. не имеют прямого отношения к делу.

Да Вы что? Таки не имеет? А как же:

Wol_fiКаждый запрос тянет финансовую транзакцию, которая тянет статистику и биллинг, то есть данные могут понадобится real-time до секунды (пользователя запросил выплату, или статистику),

Не надо углубляться в терминологию в отрыве от темы!
...
Рейтинг: 0 / 0
Посоветуйте СУБД
    #37741358
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pkarklinVictor MetelitsaСервер (грубо говоря, слуга) - это то, что обслуживает кого-то/что-то. Отказоустойчивость, производительность и т.п. не имеют прямого отношения к делу.
Да Вы что? Таки не имеет? А как же:
"К делу" выяснения, сервер это или не сервер.
Wol_fiКаждый запрос тянет финансовую транзакцию, которая тянет статистику и биллинг, то есть данные могут понадобится real-time до секунды (пользователя запросил выплату, или статистику),
Не надо углубляться в терминологию в отрыве от темы!
Это сервер, характеристики которого вы считаете неподходящими для выполнения описанной в топике работы.
...
Рейтинг: 0 / 0
Посоветуйте СУБД
    #37741361
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor MetelitsaЭто сервер, характеристики которого вы считаете неподходящими для выполнения описанной в топике работы.

Он для любой работы - неподходящий.
...
Рейтинг: 0 / 0
Посоветуйте СУБД
    #37741397
Лисек
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FVMas полностью удовлетворяет Вашим условиям. Отличная документация прилагается.
...
Рейтинг: 0 / 0
Посоветуйте СУБД
    #37741837
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wol_fiА мускульные InnoDB и MyISAM очень частенько отказывают|ложатся при больших
размерах, что в этом случае не очень хорошо.
В отсутствии адекватного DBA откажут/лягут любые СУБД.

pkarklinОн для любой работы - неподходящий.

Зажрались Вы, батенька...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Посоветуйте СУБД
    #37741858
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovЗажрались Вы, батенька...

Угу. Мне не нужен слуга, у которого, то рука болит, а то понос...
...
Рейтинг: 0 / 0
Посоветуйте СУБД
    #37751163
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wol_fiSERG1257пропущено...
MySQL ибо оно уже стоит. ЛЮБАЯ другая субд это риск.
пропущено...
Могут или понадобятся решает заказчик и только он. Нормальный вменяемый пользователь поймет, если большими буквами будет написано что данные доступны только до последнего часа или минуты (минута уже достаточно хороший интервал буферизации)
пропущено...
В отличии от переделок софта, затраты на железо гораздо надежнее. Вероятность поймать проблемы после установки нового сервера (процессора, памяти, диска) конечно же есть, но она не сравнима с вероятностью огрести после установки патча или новой субд. И если заказчик на это не идет ТО ЗАКАЗЧИКА ДАННАЯ ПРОБЛЕМА НЕ ТРОГАЕТ.
Признайтесь честно, вам захотелось потрогать этот MongoDB в условиях приближенных к боевым.
Тонко:)
Трогайте
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
$connection = new Mongo();
$db = $connection->test;
$time_start = microtime();
for($i=0;$i<=100000000;$i++)
{
$db->insert(array(
'a' => mt_rand(),
'b' => md5(chr(mt_rand(33,126)))
));
}
echo microtime() - $time_start;


Вы видимо работаете в параллельной вселенной. Так как в этой адекватный заказчик, понимающий все тонкости попадается редко. Это к сожалению не такой случай. А мускульные InnoDB и MyISAM очень частенько отказывают|ложатся при больших размерах, что в этом случае не очень хорошо.

Кстате какой здесь результат ?
(ради интереса)
...
Рейтинг: 0 / 0
Посоветуйте СУБД
    #37751209
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pkarklinDimitry SibiryakovЗажрались Вы, батенька...
Угу. Мне не нужен слуга, у которого, то рука болит, а то понос...

говнокода меньше писать надо ...
...
Рейтинг: 0 / 0
Посоветуйте СУБД
    #37751226
RENaissance
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bazistpkarklinпропущено...

Угу. Мне не нужен слуга, у которого, то рука болит, а то понос...

говнокода меньше писать надо ...
Да просто задачи другого масштаба.
...
Рейтинг: 0 / 0
Посоветуйте СУБД
    #37751257
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bazist,

Поучи меня еще, ага...
...
Рейтинг: 0 / 0
Посоветуйте СУБД
    #37751318
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RENaissanceBazistпропущено...
говнокода меньше писать надо ...
Да просто задачи другого масштаба.

скорей понты другого масштаба, нужно приземленней смотреть на вещи.

Вполне себе оборотистый восьмиядерный проц, оперативы много, винт пишет
100мб в секунду.

Что такое для такого сервака какието 200-300 вставок в секунду ?
Теоретический предел его 200-300 ТЫСЯЧ вставок в секунду,
но конечно на определенном ПО, на какойто непопсовой СУБД знающей толк
в производительности.
...
Рейтинг: 0 / 0
Посоветуйте СУБД
    #37751319
Random_Goodman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander RyndinКакая-то прям мода на MongoDB. Коллективное помешательство. :)
Пройдет. Главное - ее попробовать. Не сразу, но пройдет. Как ВНЕЗАПНО ВДРУГ данные исчезнут.
...
Рейтинг: 0 / 0
Посоветуйте СУБД
    #37751320
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BazistСУБД знающей толк в производительности.

СУБД решают не только задачи производительности, как это не парадоксально.
...
Рейтинг: 0 / 0
Посоветуйте СУБД
    #37751324
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pkarklinBazistСУБД знающей толк в производительности.

СУБД решают не только задачи производительности, как это не парадоксально.

СУБД много чего решают. И то что нужно и то что не нужно. Знаем, видели, наслышаны.
То что можно было бы выписать с десятком строчек на каком нибудь оперативном языке
приходится городить иногда таким вот огородом, например


Код: 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.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
253.
254.
255.
256.
257.
258.
259.
260.
261.
262.
263.
264.
265.
266.
267.
268.
269.
270.
271.
272.
273.
274.
275.
276.
277.
278.
279.
280.
281.
282.
283.
284.
285.
286.
287.
288.
289.
290.
291.
292.
293.
294.
295.
296.
297.
298.
299.
300.
301.
302.
303.
304.
305.
306.
307.
308.
309.
310.
311.
312.
313.
314.
315.
316.
317.
318.
319.
320.
321.
322.
323.
324.
325.
ALTER FUNCTION GetRegisterEntries()RETURNS table
AS
RETURN
(
WITH PC ( -- Contains all registrations with previous calculated
			RegisterDateID,
			IsOfPersonRef,
			IsOfCalendarRef,
			RegisterDate,
			RegisterDateStartDateTime,
			RegisterDateEndDateTime,
			CalendarStartDateTime,
			CalendarEndDateTime,
			CreateOnDateRegisterDate,
			FlexInMinutes,
			IsExportedToForeignSystem,
			RegisterEntryId,
			IsOfProjectRef,
			IsOfJobCodeRef,
			IsOfJobcodeValue,
			IsOfRegisterTypeRef,
			Overtime,
			RegisterEntryStartDateTime,
			RegisterEntryEndDateTime,
			RegisterTimeInMin,
			IsOfShowTypeRef,
			IsOfOriginFromRef,
			Comment,
			IsRegisteredByPersonRef,
			BoolValue1,
			BoolValue2,
			BoolValue3,
			IsOfLocationRef,
			IsOfRegisterEntryRef,
			IsOfRegisterGroupEntriesRef,
			IsOfGroupingRef,
			IsOfRegisterGroupTypeRef,
			ManagementBonus,
			RegisterEntryCreatedOnDate,
			BeforeOvertime,
			BeforeSumTime,
			DefaultName,
			RegNum
		) AS  
		(		  
			SELECT	rd.Id RegisterDateID,
					rd.IsOfPersonRef,
					rd.IsOfCalendarRef,
					rd.RegisterDate,
					rd.StartDateTime RegisterDateStartDateTime,
					rd.EndDateTime RegisterDateEndDateTime,
					rd.CalendarStartDateTime,
					rd.CalendarEndDateTime,
					rd.CreateOnDate CreateOnDateRegisterDate,
					rd.FlexInMinutes,
					rd.IsExportedToForeignSystem,
					re.Id RegisterEntryId,
					re.IsOfProjectRef,
					re.IsOfJobCodeRef,
					re.IsOfJobcodeValue,
					re.IsOfRegisterTypeRef,
					re.Overtime,
					re.StartDateTime RegisterEntryStartDateTime,
					re.EndDateTime RegisterEntryEndDateTime,
					re.RegisterTimeInMin2 RegisterTimeInMin,
					re.IsOfShowTypeRef,
					re.IsOfOriginFromRef,
					re.Comment,
					re.IsRegisteredByPersonRef,
					re.BoolValue1,
					re.BoolValue2,
					re.BoolValue3,
					re.IsOfLocationRef,
					re.IsOfRegisterEntryRef,
					re.IsOfRegisterGroupEntriesRef,
					re.IsOfGroupingRef,
					re.IsOfRegisterGroupTypeRef,
					re.ManagementBonus,
					re.CreatedOnDate RegisterEntryCreatedOnDate,
					datediff(minute, 
							 dbo.OnlyTime(rd.StartDateTime), 
							 dbo.OnlyTime(rd.CalendarStartDateTime)) BeforeOvertime, --Overtime before a calendar time
					(
						SELECT SUM(RegisterTimeInMin2) 
						FROM  (
										--Devide long registrations on serveral parts
										SELECT	re2.*,
												re2.RegisterTimeInMin RegisterTimeInMin2,
												CASE WHEN NOT ds.DefaultName like 'Lunch%'
													 THEN 0
													 ELSE 1
												END RegNum
										FROM RegisterEntries re2
											 INNER JOIN RegisterDate rd2 ON re2.IsOfRegisterDateRef = rd2.Id
											 LEFT JOIN DefaultSettingsUnique ds ON re2.IsOfProjectRef = ds.IsOfProjectRef
										WHERE re2.IsOfShowTypeRef = 1
											AND ds.DefaultName IS NOT NULL
										UNION ALL
										SELECT	re2.*, --100% or 50% or 25% of RegisterTimeInMin
												CASE WHEN (re2.RegisterTimeInMin + 60 > DATEDIFF(minute, 
																								 rd2.CalendarStartDateTime, 
																								 rd2.CalendarEndDateTime))
													 THEN 
														 CASE WHEN re2.RegisterTimeInMin/2 + 60 > DATEDIFF(minute, 
																											rd2.CalendarStartDateTime, 
																										  rd2.CalendarEndDateTime) 
															  THEN re2.RegisterTimeInMin/4
															  ELSE re2.RegisterTimeInMin/2
														 END 
													 ELSE re2.RegisterTimeInMin
												END RegisterTimeInMin2,
												1 RegNum 
										FROM RegisterEntries re2
											 INNER JOIN RegisterDate rd2 ON re2.IsOfRegisterDateRef = rd2.Id
											 LEFT JOIN DefaultSettingsUnique ds ON re2.IsOfProjectRef = ds.IsOfProjectRef
										WHERE re2.IsOfShowTypeRef = 1
											AND ds.DefaultName IS NULL
										UNION ALL	--50% or 25% of RegisterTimeInMin		
										SELECT	re2.*, 
												CASE WHEN re2.RegisterTimeInMin/2 + 60 > DATEDIFF(minute, 
																								  rd2.CalendarStartDateTime, 
																								  rd2.CalendarEndDateTime) 
													 THEN re2.RegisterTimeInMin/4
													 ELSE re2.RegisterTimeInMin/2
												END  RegisterTimeInMin2,
												2 RegNum
										FROM RegisterEntries re2
											 INNER JOIN RegisterDate rd2 ON re2.IsOfRegisterDateRef = rd2.Id
											 LEFT JOIN DefaultSettingsUnique ds ON re2.IsOfProjectRef = ds.IsOfProjectRef
										WHERE re2.RegisterTimeInMin + 60 > DATEDIFF(minute, 
																					 rd2.CalendarStartDateTime, 
																					rd2.CalendarEndDateTime)
											AND re2.IsOfShowTypeRef = 1
											AND ds.DefaultName IS NULL
										UNION ALL --25% of RegisterTimeInMin
										SELECT	re2.*,
												re2.RegisterTimeInMin/4,
												3 RegNum 
										FROM RegisterEntries re2
											 INNER JOIN RegisterDate rd2 ON re2.IsOfRegisterDateRef = rd2.Id
											 LEFT JOIN DefaultSettingsUnique ds ON re2.IsOfProjectRef = ds.IsOfProjectRef
										WHERE re2.RegisterTimeInMin/2 + 60 > DATEDIFF(minute, 
																					  rd2.CalendarStartDateTime, 
																					  rd2.CalendarEndDateTime)
											AND re2.IsOfShowTypeRef = 1
											AND ds.DefaultName IS NULL
										UNION ALL --25% of RegisterTimeInMin
										SELECT	re2.*,
												re2.RegisterTimeInMin/4,
												4 RegNum 
										FROM RegisterEntries re2
											 INNER JOIN RegisterDate rd2 ON re2.IsOfRegisterDateRef = rd2.Id
											 LEFT JOIN DefaultSettingsUnique ds ON re2.IsOfProjectRef = ds.IsOfProjectRef
										WHERE re2.RegisterTimeInMin/2 + 60 > DATEDIFF(minute, 
																					  rd2.CalendarStartDateTime, 
																					  rd2.CalendarEndDateTime)
											AND re2.IsOfShowTypeRef = 1
											AND ds.DefaultName IS NULL
							  ) re3
							  LEFT JOIN DefaultSettingsUnique ds2 on re3.IsOfProjectRef = ds2.IsOfProjectRef 
						WHERE re3.IsOfRegisterDateRef = rd.Id 
							  AND (re3.RegNum < re.RegNum)
							  AND (
									NOT (ds2.DefaultName like ('Lunch%')) 
									OR ds2.DefaultName IS NULL
								  ) 
					) BeforeSumTime, -- Sum of work minutes previous registrations,
					ds.DefaultName,
					re.RegNum
					FROM dbo.RegisterDate rd
						 INNER JOIN 
									(	
										--Devide long registrations on serveral parts
										SELECT	re2.*, --only PartlyIll
												re2.RegisterTimeInMin RegisterTimeInMin2,
												CASE WHEN NOT ds.DefaultName like 'Lunch%'
													 THEN 0
													 ELSE 1
												END RegNum
										FROM RegisterEntries re2
											 INNER JOIN RegisterDate rd2 ON re2.IsOfRegisterDateRef = rd2.Id
											 LEFT JOIN DefaultSettingsUnique ds ON re2.IsOfProjectRef = ds.IsOfProjectRef
										WHERE re2.IsOfShowTypeRef = 1
											AND ds.DefaultName IS NOT NULL
										UNION ALL
										SELECT	re2.*, --100% or 50% or 25% of RegisterTimeInMin
												CASE WHEN (re2.RegisterTimeInMin + 60 > DATEDIFF(minute, 
																								 rd2.CalendarStartDateTime, 
																								 rd2.CalendarEndDateTime))
													 THEN 
														 CASE WHEN re2.RegisterTimeInMin/2 + 60 > DATEDIFF(minute, 
																											rd2.CalendarStartDateTime, 
																										  rd2.CalendarEndDateTime) 
															  THEN re2.RegisterTimeInMin/4
															  ELSE re2.RegisterTimeInMin/2
														 END 
													 ELSE re2.RegisterTimeInMin
												END RegisterTimeInMin2,
												1 RegNum 
										FROM RegisterEntries re2
											 INNER JOIN RegisterDate rd2 ON re2.IsOfRegisterDateRef = rd2.Id
											 LEFT JOIN DefaultSettingsUnique ds ON re2.IsOfProjectRef = ds.IsOfProjectRef
										WHERE re2.IsOfShowTypeRef = 1
											AND ds.DefaultName IS NULL
										UNION ALL	--50% or 25% of RegisterTimeInMin		
										SELECT	re2.*, 
												CASE WHEN re2.RegisterTimeInMin/2 + 60 > DATEDIFF(minute, 
																								  rd2.CalendarStartDateTime, 
																								  rd2.CalendarEndDateTime) 
													 THEN re2.RegisterTimeInMin/4
													 ELSE re2.RegisterTimeInMin - re2.RegisterTimeInMin/2
												END  RegisterTimeInMin2,
												2 RegNum
										FROM RegisterEntries re2
											 INNER JOIN RegisterDate rd2 ON re2.IsOfRegisterDateRef = rd2.Id
											 LEFT JOIN DefaultSettingsUnique ds ON re2.IsOfProjectRef = ds.IsOfProjectRef
										WHERE re2.RegisterTimeInMin + 60 > DATEDIFF(minute, 
																					 rd2.CalendarStartDateTime, 
																					rd2.CalendarEndDateTime)
											AND re2.IsOfShowTypeRef = 1
											AND ds.DefaultName IS NULL
										UNION ALL --25% of RegisterTimeInMin
										SELECT	re2.*,
												re2.RegisterTimeInMin/4,
												3 RegNum 
										FROM RegisterEntries re2
											 INNER JOIN RegisterDate rd2 ON re2.IsOfRegisterDateRef = rd2.Id
											 LEFT JOIN DefaultSettingsUnique ds ON re2.IsOfProjectRef = ds.IsOfProjectRef
										WHERE re2.RegisterTimeInMin/2 + 60 > DATEDIFF(minute, 
																					  rd2.CalendarStartDateTime, 
																					  rd2.CalendarEndDateTime)
											AND re2.IsOfShowTypeRef = 1
											AND ds.DefaultName IS NULL
										UNION ALL --25% of RegisterTimeInMin
										SELECT	re2.*,
												re2.RegisterTimeInMin - (re2.RegisterTimeInMin/4) * 3, --rounding
												4 RegNum 
										FROM RegisterEntries re2
											 INNER JOIN RegisterDate rd2 ON re2.IsOfRegisterDateRef = rd2.Id
											 LEFT JOIN DefaultSettingsUnique ds ON re2.IsOfProjectRef = ds.IsOfProjectRef
										WHERE re2.RegisterTimeInMin/2 + 60 > DATEDIFF(minute, 
																					  rd2.CalendarStartDateTime, 
																					  rd2.CalendarEndDateTime)
											AND re2.IsOfShowTypeRef = 1
											AND ds.DefaultName IS NULL
									) re on re.IsOfRegisterDateRef = rd.Id
						 LEFT JOIN DefaultSettingsUnique ds on re.IsOfProjectRef = ds.IsOfProjectRef
			)  
SELECT *,
		DATEADD(minute, 
				(CASE WHEN t3.RegisterTimeInMinBefore IS NOT NULL 
					  THEN t3.RegisterTimeInMinBefore 
					  ELSE 0 
				 END), 
				t3.RegisterDateStartDateTime) EntryStartDateTime, --Calculate StartDateTime of the Register Entry by RegisterTimeInMinBefore and RegisterDateStartDateTime
		DATEADD(minute, 
				(CASE WHEN t3.RegisterTimeInMinBefore IS NOT NULL 
					  THEN t3.RegisterTimeInMinBefore 
					  ELSE 0 
				 END) + t3.RegisterTimeInMin, 
				t3.RegisterDateStartDateTime) EntryEndDateTime	 --Calculate EndDateTime of the Register Entry by RegisterTimeInMinBefore and RegisterTimeInMin and RegisterDateStartDateTime
FROM
(
	SELECT *,
			(
				SELECT SUM(RegisterEntries.RegisterTimeInMin) 
				FROM (
						SELECT	PC.RegisterEntryId, 
								PC.RegisterDateId, 
								PC.RegisterTimeInMin, 
								1 REType,					--Registrations before CalendarStartDateTime
								RegNum
						FROM PC
						WHERE ( 
								PC.BeforeSumTime IS NULL 
								OR PC.BeforeSumTime < BeforeOvertime 
							  ) 
							  AND (NOT isnull(PC.DefaultName, '') like ('Lunch%')) 
						UNION ALL
						SELECT PC.RegisterEntryId, 
								PC.RegisterDateId, 
								PC.RegisterTimeInMin, 
								2 REType,					--Lunch registration
								RegNum
						FROM PC
						WHERE ( PC.DefaultName like ('Lunch%') )
						UNION ALL
						SELECT PC.RegisterEntryId, 
								PC.RegisterDateId, 
								PC.RegisterTimeInMin, 
								3 REType,						--All registrations after lunch
								RegNum
						FROM PC
						WHERE (PC.BeforeSumTime >= BeforeOvertime ) 
								AND (NOT isnull(PC.DefaultName, '') like ('Lunch%')) 
					) RegisterEntries 
				WHERE RegisterEntries.RegisterDateId = t2.RegisterDateId	
					  AND (RegisterEntries.REType < t2.REType
							OR (RegisterEntries.REType = t2.REType AND RegisterEntries.RegisterEntryId < t2.RegisterEntryId)  
							OR (RegisterEntries.REType = t2.REType AND RegisterEntries.RegisterEntryId = t2.RegisterEntryId AND RegisterEntries.RegNum < t2.RegNum)  
			)	
		) RegisterTimeInMinBefore	--Calculate previous time of the registrations.
	FROM
	(
		SELECT *, 
				1 REType	--Registrations before CalendarStartDateTime
		FROM PC
		WHERE ( PC.BeforeSumTime IS NULL 
				OR PC.BeforeSumTime < BeforeOvertime ) 
				AND (NOT isnull(PC.DefaultName, '') like ('Lunch%')) 
		UNION ALL
		SELECT *,		
				2 REType --Lunch registration
		FROM PC
		WHERE ( PC.DefaultName like ('Lunch%') )
		UNION ALL
		SELECT *,		
				3 REType --All registrations after lunch
		FROM PC
		WHERE (	PC.BeforeSumTime >= BeforeOvertime ) 
				AND (NOT isnull(PC.DefaultName, '') like ('Lunch%')) 
					  
	) t2
) t3
)




А потом мы говорим, что сервер такойто нам уже и не сервер ...
Вообщемто это офтоп, но всегда нужно понимать что не железо отыгрывает первую роль, а как раз софт.
Правильно нужно подбирать инструменты, а не пинать конфигурации серверов, потому что ваш любимый дистрибутив в состоянии покоя уже сотни мегабайт отжирает.
...
Рейтинг: 0 / 0
Посоветуйте СУБД
    #37751328
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BazistТо что можно было бы выписать с десятком строчек на каком нибудь оперативном языке
приходится городить иногда таким вот огородом, например

Угу. Именно такие огороды и позволяют добиться максимального быстродействия при обработке реляционных данных, а не "оперативные языки".

Bazistно всегда нужно понимать что не железо отыгрывает первую роль, а как раз софт.

Первую роль всегда играет сбаллансированность системы, ибо стебельку не место на HP DL 980 G7, а MS SQL на калькуляторе MK-61.

BazistПравильно нужно подбирать инструменты

Спасибо, у меня с этим нет проблем. Если Вы хотите об этом поговорить, то не со мной.
...
Рейтинг: 0 / 0
Посоветуйте СУБД
    #37752189
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pkarklinBazistТо что можно было бы выписать с десятком строчек на каком нибудь оперативном языке
приходится городить иногда таким вот огородом, например

Угу. Именно такие огороды и позволяют добиться максимального быстродействия при обработке реляционных данных, а не "оперативные языки".


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

pkarklinBazistно всегда нужно понимать что не железо отыгрывает первую роль, а как раз софт.
Первую роль всегда играет сбаллансированность системы, ибо стебельку не место на HP DL 980 G7, а MS SQL на калькуляторе MK-61.


Совершенно с вами согласен. Осталось вам только обосновать, что для задачи ТС действительно необходим MS SQL.
Он не будет выглядеть как пригнанный экскаватор на грядку петрушки требующий HP DL 980 G7. Повторюсь, какая нибудь легковесная база будет в сотни раз быстрее работать, даже на классических задачах.
...
Рейтинг: 0 / 0
Посоветуйте СУБД
    #37752498
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BazistЭтот запрос иллюстрация всей уродливости реляционной системы, когда пытаются решить императивные задачи.
Получается долго, длинно, медленно, с известными неисправимыми багами ....

В подавляющем большинстве случаев уродливой реляционную модель делают кривые руки проектировщиков\разработчиков.

BazistОсталось вам только обосновать, что для задачи ТС действительно необходим MS SQL.

Я (или кто-то другой в этом топике) где-то предлагал ТС MS SQL?!

BazistОн не будет выглядеть как пригнанный экскаватор на грядку петрушки требующий HP DL 980 G7. Повторюсь, какая нибудь легковесная база будет в сотни раз быстрее работать, даже на классических задачах.

Пожалуйста, решите аналогичную задачу в многопользовательском режиме (когда 1 000 пользователей делают проводки) с сохранением консистентности. А так же решите каку-нибудь расчетную задачу, в которой была бы и запись и чтение в одной транзакции. И чтоб посередине вашего расчета уборщица выдернула шнур питания из Вашего "сервера".
...
Рейтинг: 0 / 0
Посоветуйте СУБД
    #37752543
RENaissance
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BazistИногда запросы нужно читать, а не форматирование разглядывать.
Этот запрос иллюстрация всей уродливости реляционной системы, когда пытаются решить императивные задачи.

Не нужно пытаться обосновать кривость своей архитектуры, якобы, недостатками реляционной модели. Задачи, которые не предназначения для SQL, всегда можно вынести в отдельный слой, что позволяет большинство современных СУБД.

Ну а если разрабатывать задачу в стиле "Что вижу, о том пою", плюс забивать гору костылей, то да, получает так, как вы и сказали:
BazistПолучается долго, длинно, медленно, с известными неисправимыми багами ....
...
Рейтинг: 0 / 0
Посоветуйте СУБД
    #37752544
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pkarklinЯ (или кто-то другой в этом топике) где-то предлагал ТС MS SQL?!


Тогда осталось непонятно как было определено что сервер для этой задачи слабый.
Какая СУБД имелась ввиду на этом сервере ?

pkarklinПожалуйста, решите аналогичную задачу в многопользовательском режиме (когда 1 000 пользователей делают проводки) с сохранением консистентности. А так же решите каку-нибудь расчетную задачу, в которой была бы и запись и чтение в одной транзакции. И чтоб посередине вашего расчета уборщица выдернула шнур питания из Вашего "сервера".

Решать эту задачу я не буду. У меня нет 1000 пользователей делающих одновременно проводки и нет уборщицы которая выдергивает неожиданно шнур. Искренне надеюсь что 99% ресурсов обычная СУБД тратит в этой задачи на блокировки, консистенцию данных, рассылку почты, секьюрити, статистику (что там еще есть, напомните ?), а 1% тратит собственно на саму задачу продовок. Тогда по скоростям все впринципе сходится.
...
Рейтинг: 0 / 0
Посоветуйте СУБД
    #37752566
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RENaissanceBazistИногда запросы нужно читать, а не форматирование разглядывать.
Этот запрос иллюстрация всей уродливости реляционной системы, когда пытаются решить императивные задачи.

Не нужно пытаться обосновать кривость своей архитектуры, якобы, недостатками реляционной модели. Задачи, которые не предназначения для SQL, всегда можно вынести в отдельный слой, что позволяет большинство современных СУБД.

Ну а если разрабатывать задачу в стиле "Что вижу, о том пою", плюс забивать гору костылей, то да, получает так, как вы и сказали:
BazistПолучается долго, длинно, медленно, с известными неисправимыми багами ....


О каком слое идет речь ?
Речь идет о жонглировании временными таблицами и курсорами ?
Вы разобрались хоть что делает эта функция ?
...
Рейтинг: 0 / 0
Посоветуйте СУБД
    #37752577
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BazistТогда осталось непонятно как было определено что сервер для этой задачи слабый.
Какая СУБД имелась ввиду на этом сервере ?

Я где-то сказал, что этот сервер "слабый"?! Помоему, Вы начинаете домысливать за меня... Я уже достаточно на мой взгляд, обосновал, что не может железяка с процем для десктопов и софверным раидом на двух винтах, купленных на Митинском радиорынке, называться сервером. Вы не догадываетесь, почему? Как Вы думаете, почему HDD того же объема и скорости для SAN стоит на порядок дороже?

авторИскренне надеюсь что 99% ресурсов обычная СУБД тратит в этой задачи на блокировки, консистенцию данных, рассылку почты, секьюрити, статистику, а 1% тратит собственно на саму задачу продовок. Тогда по скоростям все впринципе сходится.

Совершенно верно. Поэтому какое-либо сравнение Вашего детища с промышленными СУБД в части быстродействия не имеет смысла.
...
Рейтинг: 0 / 0
Посоветуйте СУБД
    #37752627
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pkarklinКак Вы думаете, почему HDD того же объема и скорости для SAN стоит на порядок дороже?

Потому что его производителям очень хочется кушать?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Посоветуйте СУБД
    #37752632
RENaissance
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BazistРечь идет о жонглировании временными таблицами и курсорами ?

Мне жаль, что это максимум, на что вас хватает.
BazistВы разобрались хоть что делает эта функция ?
...
Рейтинг: 0 / 0
Посоветуйте СУБД
    #37752636
RENaissance
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BazistВы разобрались хоть что делает эта функция ?
Даже и не думал вникать в этот быдлокод.
...
Рейтинг: 0 / 0
Посоветуйте СУБД
    #37752642
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pkarklinЯ уже достаточно на мой взгляд, обосновал, что не может железяка с процем для десктопов и софверным раидом на двух винтах, купленных на Митинском радиорынке, называться сервером. Вы не догадываетесь, почему? Как Вы думаете, почему HDD того же объема и скорости для SAN стоит на порядок дороже?


Я вам уже сказал что эта железяка без проблемно может держать 200-300 тысяч вставок в секунду
на каком нибудь NoSQL решении. И выборки делать тоже в сто раз быстрее.
Чтобы добится такой скорости на вашей любимой субд вам нужен сервер в сто раз мощнее и в тысячу раз дороже.

pkarklinавторИскренне надеюсь что 99% ресурсов обычная СУБД тратит в этой задачи на блокировки, консистенцию данных, рассылку почты, секьюрити, статистику, а 1% тратит собственно на саму задачу продовок. Тогда по скоростям все впринципе сходится.
Совершенно верно. Поэтому какое-либо сравнение Вашего детища с промышленными СУБД в части быстродействия не имеет смысла.

Это извечный спор между NoSQL и реляционными СУБД.
То что в данный момент выигрывают на рынке реляционные СУБД вовсе не означает что они лишились всех недостатков по сравнению с NoSQL. Вот и все. Разницу в скоростях нужно банально знать и понимать.
Она составляет гдето десять раз, гдето сто а гдето и тысячу.
В задаче где одна табличка и много запросов и вставок в таблицу простых, помойму выводы очевидны. И iCore7 в этой задаче будет с ОГРОМНЫМ запасом.
...
Рейтинг: 0 / 0
Посоветуйте СУБД
    #37752650
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RENaissanceBazistВы разобрались хоть что делает эта функция ?
Даже и не думал вникать в этот быдлокод.

Квалификация не позволяет ?
...
Рейтинг: 0 / 0
Посоветуйте СУБД
    #37752659
RENaissance
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BazistRENaissanceпропущено...

Даже и не думал вникать в этот быдлокод.

Квалификация не позволяет ?
Совершенно верно. Этот этап я очень давно прошел.
...
Рейтинг: 0 / 0
Посоветуйте СУБД
    #37752687
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovПотому что его производителям очень хочется кушать?..

Потому, что кушать хочется компаниям, использующих оборудование Enterprise уровня, ибо простой 5ти минутный стОит очень-очень дорого.

Никогда не задумывались, почему стоимость комплектующих с 5ой и с 9ой приемкой отличается на порядок и более?

И во что выливается производителю 3х летняя гарантия на условиях 6h 24х7 Call To Repair ?
...
Рейтинг: 0 / 0
Посоветуйте СУБД
    #37752694
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RENaissanceСовершенно верно. Этот этап я очень давно прошел.

Тогда для преуспевающих манагеров по продаже пылесосов (в прошлом кодеров), обьясню на пальцах.
Запрос расчепляет некоторые периоды, тоесть строчки в таблице с колонками StartDate EndDate, и вставляет внутрь другие строчки периодов внутрь по определенным правилам. В данном случае это правило довольно простое, есть период1 и есть период2, они както пересекаются и внутренний период должен попасть именно в это пересечение.

На каком нибудь шарпе это было бы пятнадцать двадцать строчек кода, а для реляционных запросов это вот такой многоэтажный костыль. Эти данные нельзя гнать на клиент чтобы их там ращеплять в отдельном слое, периодов сотни тысяч. Это все было бы очень медленно. Курсоры и вставки во временные таблицы сделали бы тоже выполнение в тысячи раз медленей чем какойто тривиальный код на встраиваемой субд. Получилось так как получилось. Вестимо реляционные СУБД умеют действительно хорошо только таблицы джойнить в запросах. Чтото посложнее, например манипуляция с периодами, уже не торт. В куппе с проводками таких задач подозреаю есть ненулевое множество.
...
Рейтинг: 0 / 0
Посоветуйте СУБД
    #37752700
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bazist,

Давайте сойдемся на том, что мы с Вами решаем задачи разного плана. Не в любом месте нужна РСУБД. Точно так же не в любом месте подойдет NoSQL.
...
Рейтинг: 0 / 0
Посоветуйте СУБД
    #37752705
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BazistИ iCore7 в этой задаче будет с ОГРОМНЫМ запасом.

Я не про производительность твержу...
...
Рейтинг: 0 / 0
Посоветуйте СУБД
    #37752758
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pkarklinBazist,

Давайте сойдемся на том, что мы с Вами решаем задачи разного плана. Не в любом месте нужна РСУБД. Точно так же не в любом месте подойдет NoSQL.

Ok
...
Рейтинг: 0 / 0
Посоветуйте СУБД
    #37752776
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pkarklinНикогда не задумывались, почему стоимость комплектующих с 5ой и с 9ой приемкой отличается
на порядок и более?

Потому что желающих кушать больше. К надёжности это не имеет практически никакого
отношения. Она определяется запасами прочности при проектировании и подъёму "на порядок"
не поддаётся.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Посоветуйте СУБД
    #37752879
Alexander Ryndin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovpkarklinНикогда не задумывались, почему стоимость комплектующих с 5ой и с 9ой приемкой отличается
на порядок и более?

Потому что желающих кушать больше. К надёжности это не имеет практически никакого
отношения. Она определяется запасами прочности при проектировании и подъёму "на порядок"
не поддаётся.
Неверно. Например, винчестеры, устанавливаемые в сервера, имеют гораздо большее MTBF, чем обычные desktop-диски. Отсюда и цена.
...
Рейтинг: 0 / 0
Посоветуйте СУБД
    #37752952
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander RyndinDimitry Sibiryakovпропущено...

Потому что желающих кушать больше. К надёжности это не имеет практически никакого
отношения. Она определяется запасами прочности при проектировании и подъёму "на порядок"
не поддаётся.
Неверно. Например, винчестеры, устанавливаемые в сервера, имеют гораздо большее MTBF, чем обычные desktop-диски. Отсюда и цена.

Это наверное из разряда приставок Dendy, 20 лет прошло а их MTBF все не заканчивается и не заканчивается, до сих пор на птичьих рынках можно найти вполне живые экспонаты ...
Имхо обычные винты достаточно надежны + зеркалирования и все норм.
...
Рейтинг: 0 / 0
Посоветуйте СУБД
    #37752981
Фотография denis2710
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bazist,
BazistНа каком нибудь шарпе это было бы пятнадцать двадцать строчек кода, а для реляционных запросов это вот такой многоэтажный костыль. Эти данные нельзя гнать на клиент чтобы их там ращеплять в отдельном слое, периодов сотни тысяч.
...
Вестимо реляционные СУБД умеют действительно хорошо только таблицы джойнить в запросах. Чтото посложнее, например манипуляция с периодами, уже не торт..

Вроде как не секрет,что во всех адекватных РСУБД давно появилась,возможность использовать процедуры,функции написанные на к-н языке программирования.
Глядя на приведенную пелену быдлокода.
Встает вопрос: религия запрещает использовать CLR ?
...
Рейтинг: 0 / 0
Посоветуйте СУБД
    #37753006
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander Ryndinвинчестеры, устанавливаемые в сервера, имеют гораздо большее MTBF, чем обычные desktop-диски.

"А теперь, уважаемые знатоки, внимание - вопрос:" ЗА СЧЁТ ЧЕГО??? Обмотки в
двигателях серебряные? Провода золотые? Вакуум сжиженный?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Посоветуйте СУБД
    #37753010
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
denis2710Bazist,
BazistНа каком нибудь шарпе это было бы пятнадцать двадцать строчек кода, а для реляционных запросов это вот такой многоэтажный костыль. Эти данные нельзя гнать на клиент чтобы их там ращеплять в отдельном слое, периодов сотни тысяч.
...
Вестимо реляционные СУБД умеют действительно хорошо только таблицы джойнить в запросах. Чтото посложнее, например манипуляция с периодами, уже не торт..

Вроде как не секрет,что во всех адекватных РСУБД давно появилась,возможность использовать процедуры,функции написанные на к-н языке программирования.
Глядя на приведенную пелену быдлокода.
Встает вопрос: религия запрещает использовать CLR ?

Наверное можно было бы этот код переписать в говнокод на CLR.
Но гарантий нет, что он просто бы не размазался по двум слоям.
Нужно чтобы CLR дал по определенным условиям из одной строчки в таблице две, а после этого их отсортировал в определенном порядке. У CLR хорошо получаются только пожалуй скалярные функции
...
Рейтинг: 0 / 0
Посоветуйте СУБД
    #37753221
Alexander Ryndin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovAlexander Ryndinвинчестеры, устанавливаемые в сервера, имеют гораздо большее MTBF, чем обычные desktop-диски.

"А теперь, уважаемые знатоки, внимание - вопрос:" ЗА СЧЁТ ЧЕГО??? Обмотки в
двигателях серебряные? Провода золотые? Вакуум сжиженный?
Я не столь глубоко это знаю, но на своем опыте наблюдал, как дохнут диски в дешевой SATA стойке и дорогой SCSI.
SATA дохли гораздо чаще при нагрузках 24x7. Видать технологический процесс отличается.
...
Рейтинг: 0 / 0
Посоветуйте СУБД
    #37753248
Alexander Ryndin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот пример
- Seagate ST3320620A: MTBF 700.000 часов
- Seagate ST9600204SS: MTBF 2.000.000 часов
Есть и еще параметры. Например, выдерживаемая температура. Ее превышение может привести к выходу из строя сразу десятка дисков и не спасет RAID.
Ну и правильно говорил pkarklin - есть еще время в течение которого производитель должен обеспечивать замену.
...
Рейтинг: 0 / 0
Посоветуйте СУБД
    #37753298
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander RyndinЯ не столь глубоко это знаю, но на своем опыте наблюдал

Есть такая штука - эффект плацебо. Широко используется в маркетинге.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Посоветуйте СУБД
    #37753313
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov"А теперь, уважаемые знатоки, внимание - вопрос:" ЗА СЧЁТ ЧЕГО??? Обмотки в
двигателях серебряные? Провода золотые? Вакуум сжиженный?


Все очень просто... Технологический процесс более "жесткий". Вводятся дополнительные операции. Тестированию подвергается не 1ин девайс из 1 000, а все. Отбраковка (да, да, то что мы покупаем в составе персоналок) составляет 95%.

И это касается не только процессоров и винтов, а даже электролитов на маме. Как Вы думаете, кто за это должен платить?
...
Рейтинг: 0 / 0
Посоветуйте СУБД
    #37753337
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну купите SAN винт, закончится его судьба продажей через 20 лет в рабочем состоянии на eBay какомуто коллекционеру за 9.99$
...
Рейтинг: 0 / 0
Посоветуйте СУБД
    #37753506
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovЕсть такая штука - эффект плацебо. Широко используется в маркетинге.


Есть такая штука - Теория надежности. Преподается на 3ем курсе технических ВУЗов. Во всяком случае преподавалась в СССР...
...
Рейтинг: 0 / 0
Посоветуйте СУБД
    #37753522
Alexander Ryndin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovAlexander RyndinЯ не столь глубоко это знаю, но на своем опыте наблюдал

Есть такая штука - эффект плацебо. Широко используется в маркетинге.
Хо-хо. Это как? Приходишь к серверу, вставляешь 2 разных диска и рассказываешь ему - вот этот 700, а этот только 2000 часов проработает.
И бинго! Действительно сервер убивает первым диск на 700! :)
А если (не дай бог) обманешь сервер, то первых сдохнет на 2000 часов ;)
А еще в характеристиках диска можно 3 нуля приписать и он будет бессмертен!
Плацебо! Чо! )
...
Рейтинг: 0 / 0
Посоветуйте СУБД
    #37753537
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander RyndinХо-хо. Это как?
Это мы ставим один диск в "дешевую SATA стойку", а другой - в "дорогую SCSI". И о чудо: в
дешёвой стойке диски "дохли гораздо чаще".

PS: В советских ВУЗах преподавали ещё и сопромат, материаловедение и теоретическую механику.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Посоветуйте СУБД
    #37753542
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

Угу... Кто не проспал эти лекции - умеет поддерживать беседу...
...
Рейтинг: 0 / 0
Посоветуйте СУБД
    #37753589
Alexander Ryndin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovAlexander RyndinХо-хо. Это как?
Это мы ставим один диск в "дешевую SATA стойку", а другой - в "дорогую SCSI". И о чудо: в
дешёвой стойке диски "дохли гораздо чаще".
Ты меня, наверное, не совсем понял. Я имел в виду, что была SATA полка с дешевыми дисками и SCSI полка с дорогими SCSI дисками. Дохли чаще SATA-диски.
...
Рейтинг: 0 / 0
Посоветуйте СУБД
    #37753604
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander RyndinТы меня, наверное, не совсем понял.
Да нет, я-то понял. Вот только с института, про который pkarklin упомянул, у меня в памяти
остались странные слова про "прочие равные условия"...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
78 сообщений из 78, показаны все 4 страниц
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Посоветуйте СУБД
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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