|
|
|
Oracle vs HyTech. По мотивам откровений Ковалевского
|
|||
|---|---|---|---|
|
#18+
Мимопроходящийесли есть полноценные READ COMMITED транзакции, то к чему эти телодвижения с fix ? может немного надуманно, но fix all; // начинаем длинный отчёт create global temporary table _REPTAB(name char(20), val double); insert into _REPTAB select 'параметр 1', sum(some_val1) from TAB where p=1; // В этот момент другой делает update TAB set p=2 where p=1; insert into _REPTAB select 'параметр 2', sum(some_val2) from TAB where p=2; вторая строка без fix table TAB; не учтёт внесённое изменение и даст верный на момент начала отчёта результат. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2007, 14:19 |
|
||
|
Oracle vs HyTech. По мотивам откровений Ковалевского
|
|||
|---|---|---|---|
|
#18+
Привет, Simonik! Ты пишешь: SimonikS> insert into _REPTAB S> select 'параметр 1', sum(some_val1) from TAB where p=1; S> // В этот момент другой делает update TAB set p=2 where p=1;да плевать нам на другого, пока он не закоммитился. или я чего-то не понимаю? -- With best regards, Мимопроходящий. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2007, 14:25 |
|
||
|
Oracle vs HyTech. По мотивам откровений Ковалевского
|
|||
|---|---|---|---|
|
#18+
плевать нам на другого, пока он не закоммитился. или я чего-то не понимаю? Он закоммитился, а мы ещё не закончили считать. Поскольку записи отчёта не должны быть сформированы на основании различных состояний таблицы, то мы, не делая fix, можем (должны) игнорировать изменения. Небольшое примечание к тому скрипту: в HT, если транзакция не объявлена явно (begin work), то по окончанию выполнения оператора update/delete/insert commit выполняется автоматически. Если в update/delete/insert обрабатывается группа записей, то изменения будут доступны по окончанию операции - как и положено. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2007, 14:54 |
|
||
|
Oracle vs HyTech. По мотивам откровений Ковалевского
|
|||
|---|---|---|---|
|
#18+
Привет, Simonik! Ты пишешь: SimonikS> Он закоммитился, а мы ещё не закончили считать.ну и фиг с ним. мы же сейчас обсуждаем READ COMMITED. "кто не спрятался - я не виноват" (С) дале мои размышлизмы: насколько я могу судить, по умолчанию, все стейтменты отрабатывают именно в режиме READ COMMITED. если же нам понадобится SNAPSHOT, то необходимо этот "снимок" создать при помощи команды fix all . а посему вопрос - каков уровень "видимости" у такого SNAPSHOT-а ? (предполагаю - на уровне сессии?) как тогда "выйти" из такого уровня изоляции снова в READ COMMITED ? -- With best regards, Мимопроходящий. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2007, 15:07 |
|
||
|
Oracle vs HyTech. По мотивам откровений Ковалевского
|
|||
|---|---|---|---|
|
#18+
имхо выглядит как сильно недоделаная буферизация фокспро ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2007, 15:21 |
|
||
|
Oracle vs HyTech. По мотивам откровений Ковалевского
|
|||
|---|---|---|---|
|
#18+
2Мимопроходящий. почти. В HT первое же обращение к таблице создаёт её snapshot. Он существует в контексте пользователя и, далее, сохраняется в курсоре. То есть, если пользователь просматривает несколько результатов одного и того же запроса, то они могут различаться. Для курсора существует операция touch - приведение записей результата к текущему состоянию, но она довольно лукавая, поскольку не учитывает критериев отбора . Чтобы сбросить snapshot, закреплённый за текущим курсором (и сессией), используется fix. Для того, чтобы сделать snapshot по одной или нескольким таблицам принудительно, используется htMakePhoto. Чтобы предупредить вопрос про курсор - тут есть свои особенности: в курсоре выполняется sql-скрипт, состоящий из одного или нескольких операторов, включая процедурные. То есть, скрипт может выглядеть как-то так var dt, val, par=2; fix all; select @dt = max(some_date), @val=sum(sum_val) from TAB1 where p = @par; if (lastsqlerr()!=0) quit; update TAB2 set dt=@dt where p = @par; insert into TAB3 values(@par,@val); select a.p, a.dt, b.sum from TAB2 a, TAB3 b where a.p=b.p; если не поставить fix all; то будет использовано текщее состояние таблиц сессии (или создано новое, если это первое обращение к таблице). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2007, 15:32 |
|
||
|
Oracle vs HyTech. По мотивам откровений Ковалевского
|
|||
|---|---|---|---|
|
#18+
hytech и J2EE(ну вернее JSF->JDBC без особых ЕЕ) web приложениями. C JDBC сложнее - какой-то базовый вариант третьей версии существует, но в рабочем режиме не эксплуатировался. Развитые средства разработки приложений на Delphi - там свои компоненты доступа к БД. Есть библиотека для PHP. hytech Точно будет НЕ дельфи. А насколько стабилен драйвер ODBC. Насколько разумно использовать ХайТеч из джавы через стандартный мост JDBC-ODBC, и поставляемый с хайтеч одбц-драйвер? Еще я знаю существует встраиваемый хайтеч и клиент-серверный. ОДБЦ я так понял есть ко второму - а как работать с первым? т.е насколько разумно (а возможно уже есть готовая?) написать JNI обертку над библиотекой хайтеча для встраивания? Таких региональных подразделений тыщи 3. Данные наверх собираются не-онлайн, время от времени выгрузки. Экспорт в DBF-есть, rar/7zip (и blat) из ht-sql вызываются.[/quot] В центральной базе оракл. Что-то типа мердж-репликейшен между хайтеч и ораклом замутить удастся? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2007, 16:07 |
|
||
|
Oracle vs HyTech. По мотивам откровений Ковалевского
|
|||
|---|---|---|---|
|
#18+
hytech и J2EE(ну вернее JSF->JDBC без особых ЕЕ) web приложениями. C JDBC сложнее - какой-то базовый вариант третьей версии существует, но в рабочем режиме не эксплуатировался. Развитые средства разработки приложений на Delphi - там свои компоненты доступа к БД. Есть библиотека для PHP. hytech Точно будет НЕ дельфи. А насколько стабилен драйвер ODBC. Насколько разумно использовать ХайТеч из джавы через стандартный мост JDBC-ODBC, и поставляемый с хайтеч одбц-драйвер? Еще я знаю существует встраиваемый хайтеч и клиент-серверный. ОДБЦ я так понял есть ко второму - а как работать с первым? т.е насколько разумно (а возможно уже есть готовая?) написать JNI обертку над библиотекой хайтеча для встраивания? Таких региональных подразделений тыщи 3. Данные наверх собираются не-онлайн, время от времени выгрузки. Экспорт в DBF-есть, rar/7zip (и blat) из ht-sql вызываются.[/quot] В центральной базе оракл. Что-то типа мердж-репликейшен между хайтеч и ораклом замутить удастся? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2007, 16:15 |
|
||
|
Oracle vs HyTech. По мотивам откровений Ковалевского
|
|||
|---|---|---|---|
|
#18+
HyTech JDBC действительно серьезно не тестировался. Если интересно - загляните сюда http://htjdbc.narod.ru . Там собственно драйвер и маленький пример. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2007, 19:03 |
|
||
|
Oracle vs HyTech. По мотивам откровений Ковалевского
|
|||
|---|---|---|---|
|
#18+
Cколько одновременно активных пользователей поддерживает Хайтек на практике? Предположим есть что-то типа 1 Xeon 3040 (Core 2 Duo), 2Gb ram ,пару дисков в зеркальном рейде ,win 2k3. Сколько одновренно инсертящих выдержит такая конфигурация -- по какому закону будет деграивроать перформанс и с чем это будет связано (т.е. как оно там работает внутри)? Мешают ли инсерты селектам -- ну вернее наоброт мешают ли тяжелые долгие селекты(для отчетов) инсертам. Как это проявляется и как реализовано это на самом деле? По какой лицензии распространяется хайтеч - доступен ли соурс? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2007, 14:39 |
|
||
|
Oracle vs HyTech. По мотивам откровений Ковалевского
|
|||
|---|---|---|---|
|
#18+
htjdbcHyTech JDBC действительно серьезно не тестировался. Если интересно - загляните сюда http://htjdbc.narod.ru . Там собственно драйвер и маленький пример. Спасибо огромное. А сорцы драйвера доступны и на каких условиях? Как он внутри реализован - непосредственно на сокетах реализует протокол .. или это мост? Я слышал есть две версии хайтеч -- встраиваемая и клиент-серверная. А вот до первой можно ли долезть из джавы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2007, 14:41 |
|
||
|
Oracle vs HyTech. По мотивам откровений Ковалевского
|
|||
|---|---|---|---|
|
#18+
ХайТехCколько одновременно активных пользователей поддерживает Хайтек на практике? Практически бывало до семи сотен. Но одновременно выполяющихся запросов при этом значительно меньше - ведь оператор в основном должен кнопки нажимать, а не сервера ждать. Предположим есть что-то типа 1 Xeon 3040 (Core 2 Duo), 2Gb ram ,пару дисков в зеркальном рейде ,win 2k3. Сколько одновренно инсертящих выдержит такая конфигурация -- по какому закону будет деграивроать перформанс и с чем это будет связано (т.е. как оно там работает внутри)? Таблицы HyTech состоят из постоянной части и журнала изменений. Проиндексирована только постоянная часть, поиск же в журнале изменений ведётся практически перебором. Следствие: количество индексов не влияет на операции корректировки БД, но с ростом журнала изменений работа замедляется. Однако, последнее не так страшно, как могло бы показаться, поскольку доля изменений в общем объёме БД обычно невелика. Перенос журнала изменений в постоянную часть является отдельной операцией и выполняется, обычно, в нерабочее время по регламенту. Мешают ли инсерты селектам Незначительно. Они пересекаются лишь на чтении заголовка журнала изменений, которое для select выполняется один раз в начале поиска. -- ну вернее наоброт мешают ли тяжелые долгие селекты(для отчетов) инсертам. Как это проявляется и как реализовано это на самом деле? Мешают так же, как мешает копирование большого (размером с объём промежуточных временных файлов) файла. Ну и плюс свою часть процессора отчёт возьмёт. А вообще пакетные операции в Hytech реализованы весьма эффективно и, скорее всего, закладываться на многочасовые, даже многоминутные, отчёты излишне. По какой лицензии распространяется хайтеч - доступен ли соурс?Вроде бесплатно, без исходников. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2007, 17:44 |
|
||
|
Oracle vs HyTech. По мотивам откровений Ковалевского
|
|||
|---|---|---|---|
|
#18+
hytech Спасибо огромное. А сорцы драйвера доступны и на каких условиях? Как он внутри реализован - непосредственно на сокетах реализует протокол .. или это мост? Я слышал есть две версии хайтеч -- встраиваемая и клиент-серверная. А вот до первой можно ли долезть из джавы? Исходники не распространяются. Написан на чистой Яве (сокеты, протокол ....). Это только клиент-сервер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2007, 18:02 |
|
||
|
Oracle vs HyTech. По мотивам откровений Ковалевского
|
|||
|---|---|---|---|
|
#18+
htjdbc hytech Спасибо огромное. А сорцы драйвера доступны и на каких условиях? Как он внутри реализован - непосредственно на сокетах реализует протокол .. или это мост? Я слышал есть две версии хайтеч -- встраиваемая и клиент-серверная. А вот до первой можно ли долезть из джавы? Исходники не распространяются. Написан на чистой Яве (сокеты, протокол ....). Это только клиент-сервер. а как долезть до встроенной hytech? Я так понял клиент-сервер работает медленее чем локальный вариант. Вот и хочу долезть из вебприложения до локального хайтеча. Веб-серверр на JSP, в крайнем случае на ASP.NET Получится ли встроить встраиваемый хайтеч в яву и как это сделать? Поддерживает ли он многопользовательский режим(веб-приложение будет поднимать локально несколько сессий)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2007, 18:36 |
|
||
|
Oracle vs HyTech. По мотивам откровений Ковалевского
|
|||
|---|---|---|---|
|
#18+
htjdbc hytech Спасибо огромное. А сорцы драйвера доступны и на каких условиях? Как он внутри реализован - непосредственно на сокетах реализует протокол .. или это мост? Я слышал есть две версии хайтеч -- встраиваемая и клиент-серверная. А вот до первой можно ли долезть из джавы? Исходники не распространяются. Написан на чистой Яве (сокеты, протокол ....). Это только клиент-сервер. А описание протокола есть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2007, 18:37 |
|
||
|
Oracle vs HyTech. По мотивам откровений Ковалевского
|
|||
|---|---|---|---|
|
#18+
Перенос журнала изменений в постоянную часть является отдельной операцией и выполняется, обычно, в нерабочее время по регламенту. Сколь это трудоемко. Если это например раз в час делать - насколько база для пользователей закроется? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2007, 18:41 |
|
||
|
Oracle vs HyTech. По мотивам откровений Ковалевского
|
|||
|---|---|---|---|
|
#18+
Перенос журнала изменений в постоянную часть является отдельной операцией и выполняется, обычно, в нерабочее время по регламенту. Сколь это трудоемко. Если это например раз в час делать - насколько база для пользователей закроется? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2007, 18:46 |
|
||
|
Oracle vs HyTech. По мотивам откровений Ковалевского
|
|||
|---|---|---|---|
|
#18+
QПеренос журнала изменений в постоянную часть является отдельной операцией и выполняется, обычно, в нерабочее время по регламенту. Сколь это трудоемко. Если это например раз в час делать - насколько база для пользователей закроется?Даже для очень интенсивно используемых БД это не делается чаще раза в день. Раз в час - бессмысленно. Если, конечно, не выполнялись нештатные запросы, модифицирующие полностью или большей частью таблицы размером в сотни мегабайт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2007, 19:04 |
|
||
|
Oracle vs HyTech. По мотивам откровений Ковалевского
|
|||
|---|---|---|---|
|
#18+
hytechа как долезть до встроенной hytech? Я так понял клиент-сервер работает медленее чем локальный вариант. Вот и хочу долезть из вебприложения до локального хайтеча. Веб-серверр на JSP, в крайнем случае на ASP.NET Получится ли встроить встраиваемый хайтеч в яву и как это сделать? Поддерживает ли он многопользовательский режим(веб-приложение будет поднимать локально несколько сессий)? "Влезть" можно используя native вызовы локального HyTech из Явы. Многопользовательский режим поддерживает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2007, 20:31 |
|
||
|
Oracle vs HyTech. По мотивам откровений Ковалевского
|
|||
|---|---|---|---|
|
#18+
Simonik QПеренос журнала изменений в постоянную часть является отдельной операцией и выполняется, обычно, в нерабочее время по регламенту. Сколь это трудоемко. Если это например раз в час делать - насколько база для пользователей закроется?Даже для очень интенсивно используемых БД это не делается чаще раза в день. Раз в час - бессмысленно. Если, конечно, не выполнялись нештатные запросы, модифицирующие полностью или большей частью таблицы размером в сотни мегабайт. А какой предел у хайтеча. Работа с базой в 10 миллионов записей - ну пусть 10 таких таблиц и еще таблиц 30-50 мелочи(справочники) где-то 15-20 активных пользователей это реально? какое примерно железо нужно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2007, 11:45 |
|
||
|
Oracle vs HyTech. По мотивам откровений Ковалевского
|
|||
|---|---|---|---|
|
#18+
А какой предел у хайтеча. Работа с базой в 10 миллионов записей - ну пусть 10 таких таблиц и еще таблиц 30-50 мелочи(справочники) где-то 15-20 активных пользователей это реально? какое примерно железо нужно? Вашей конфигурации должно хватить. Вообще желательно иметь объём памяти, достаточный для кеширования основных индексов - считайте приблизительно как кол-во записей умноженное на длину ключа+4. И всё от запросов зависит - не нужно особо большой таблицы, чтобы написать что-нибудь, что отнимет 100% времени или забъёт диск. Это всего касается. Посмотрите свои типичные запросы на тестовой БД. Главное старайтесь всё сформулировать в одном sql-запросе - он в HT не ограничен одним sql-предложением, - избегайте перебора, чтения записей на клиента для обработки. Для расшифровки справочников используйте "кодификаторы" - посмотрите раздел "Встроенные SQL-функции", "Функции работы с кодификаторами". Это позволит избежать избыточных джоинов и существенно сократит время выполнения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2007, 12:38 |
|
||
|
|

start [/forum/topic.php?fid=35&msg=35030908&tid=1553195]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
39ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 245ms |
| total: | 383ms |

| 0 / 0 |
