Модераторы: LSD, AntonSaburov

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Эмуляция БД 
:(
    Опции темы
Platon
Дата 21.2.2008, 12:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1801
Регистрация: 25.4.2006

Репутация: 16
Всего: 40



А вот мне интересны показатели HSQLDB, якобы показатели производительности в 2 раза лучше. Как это понимать?
PM MAIL ICQ   Вверх
EJack
Дата 21.2.2008, 13:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 110
Регистрация: 4.9.2007

Репутация: нет
Всего: нет



Цитата(powerOn @ 20.2.2008,  22:31)
Цитата(3 @ 14, 20.2.2008,  22:13 Найти цитируемый пост)
Взял Derby, единственный найденный минус - не поддерживается автоинкрементация Primary Key. 


Почему не поддерживается? 

Создадим таблицу:
Код

CREATE TABLE test
(
pr_key INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1),
some_data VARCHAR(256),
UNIQUE (pr_key)
)


выполним вставку данных:
Код

insert into test (some_data) values ('testdata1');

А еще есть возможность и такая:

Код

CREATE TABLE test
(
pr_key INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1),
some_data VARCHAR(256),
UNIQUE (pr_key)
)


тогда инсерт может быть и таким

Код

insert into test (some_data) values (DEFAULT, 'testdata1'), (100, 'testdata2');


В первом случае произойдет вставка авто инкрементного значения, а во втором значения 100 в поле pr_key

Добавлено через 2 минуты и 41 секунду
Цитата(Platon @ 21.2.2008,  12:39)
А вот мне интересны показатели HSQLDB, якобы показатели производительности в 2 раза лучше. Как это понимать?

Так тогда необходимо реальные тесты провести, кто кого под разными типами нагрузок. Но это уже надо делать компетентным людям.

Хотя мое мнение на небольших объемах данных и не сложных запросах разница в производительности будет минимальна.
PM MAIL   Вверх
Maksym
Дата 21.2.2008, 15:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


.
***


Профиль
Группа: Участник Клуба
Сообщений: 1456
Регистрация: 19.8.2005
Где: Odessa, Black Sea

Репутация: 14
Всего: 62



Цитата(EJack @  21.2.2008,  12:51 Найти цитируемый пост)
Хотя мое мнение на небольших объемах данных и не сложных запросах разница в производительности будет минимальна.

Боюсь HSQLDB вообще не приспособлена для работы с большими объемами.
PM MAIL   Вверх
EJack
Дата 21.2.2008, 16:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 110
Регистрация: 4.9.2007

Репутация: нет
Всего: нет



вот по этом тестировать должны (ну если захотят) знающие люди, Я вот про HSQLDB вообще не чего не знаю.
PM MAIL   Вверх
Hidrag
Дата 21.2.2008, 17:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 877
Регистрация: 9.4.2005
Где: JDK

Репутация: 3
Всего: 25



Так для больших объемов данных и СУБД соответствующие, а так для нескольких тысяч строк таблицы и не важно за 1 секунду или за 2 отработает...


--------------------
user posted image
PM WWW ICQ   Вверх
Platon
Дата 21.2.2008, 17:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1801
Регистрация: 25.4.2006

Репутация: 16
Всего: 40



Цитата

Disk tables (CACHED TABLE) up to 8GB and text tables up to 2GB each

Ну, я думаю, для задачи средней сложности подходит вполне.
PM MAIL ICQ   Вверх
3,14
Дата 26.3.2008, 15:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1614
Регистрация: 18.6.2004
Где: Н. Новгород

Репутация: 6
Всего: 24



М-да, судя по всему поосторожнее следует быть и с apache derby, и с HSQLDb. И подумать стоит ли их использовать. Столкнулся с проблемой в SQL запросах: http://forum.vingrad.ru/forum/topic-202332.html Решение, пока, таки не нашлось  smile 


--------------------
Может быть, это только мой бред,
Может быть, жизнь не так хороша,
Может быть, я не выйду на свет,
Но я летал, когда пела душа...
PM MAIL   Вверх
mbasil
Дата 26.3.2008, 16:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 399
Регистрация: 4.5.2007
Где: Москва

Репутация: 2
Всего: 13



Это 
Код

SELECT c.id, c.name, c.load, min(b.ip_id) as min_ip_id 
FROM em_configs c, em_boxes b 
WHERE c.id=b.config_id 
GROUP BY c.id

даже в Oracle работать не будет. Правило есть - если одиночный столбец попадает в извлекаемый список вместе с групповой функцией, он обязательно должен быть помещен в клаузу GROUP BY
Код

SELECT c.id, c.name, c.load, min(b.ip_id) as min_ip_id 
FROM em_configs c, em_boxes b 
WHERE c.id=b.config_id 
GROUP BY c.id, c.name, c.load

Попробуйте, что нибудь вроде этого
Код

SELECT a.id, a.name, a.load, d.min_ip_id
FROM em_configs a, ( SELECT c.id, min(b.ip_id) as min_ip_id 
                       FROM em_configs c, em_boxes b 
                       WHERE c.id=b.config_id 
                       GROUP BY c.id) d
WHERE a.id = d.id


Это сообщение отредактировал(а) mbasil - 26.3.2008, 16:10
PM MAIL   Вверх
3,14
Дата 26.3.2008, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1614
Регистрация: 18.6.2004
Где: Н. Новгород

Репутация: 6
Всего: 24



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


--------------------
Может быть, это только мой бред,
Может быть, жизнь не так хороша,
Может быть, я не выйду на свет,
Но я летал, когда пела душа...
PM MAIL   Вверх
mbasil
Дата 26.3.2008, 20:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 399
Регистрация: 4.5.2007
Где: Москва

Репутация: 2
Всего: 13



Полагаю Вас ввела в заблуждение некоторая неряшливость, допускаемая разработчиками MySQL в части синтаксиса SQL. Например они допускают выполнение операции SELECT в отсутствии клаузы FROM.
А года два назад, когда немного работал MySQL столкнулся с вопиющим фактом: В таблице можно было создать ограничение NOT NULL на некоторый столбец, а потом смело внести NULL значение в этот столбец. В Oracle с такими "ляпами" я никогда не сталкивался.

Приведенная же Вами задача имеет рассмотренные ограничения, очевидно не по причине технических недоработок, а вследствие осознанного решения, что так должно работать группирование. Предполагаю, что такое поведение определено в стандарте SQL 92г., хотя гарантировать и не могу, нет времени искать текст.
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0486 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.