|
Как будет работать быстрее
|
|||
---|---|---|---|
#18+
Как лучше сделать: а) Создать хранимую процедру, примерно такую: CREATE PROCEDURE RETURN_RECORDS( FORUM_ID SMALLINT, BEGIN_BARRIER INTEGER) RETURNS ( MESSAGE_ID INTEGER, MESSAGE_NAME VARCHAR(255), READED SMALLINT, MARKED SMALLINT, IMPORT_DATA DATE) AS begin /* Возвращает 100 сообщений принадлежащих определенному форуму */ for select first 100 message_id, message_name, readed, marked, import_data from messages where message_id>:begin_barrier and forum_id=:forum_id into :message_id, :message_name, :readed, :marked, :import_data do suspend; end А клиент будет делать запросы вида select * from return_records(1,100) where ..... (например readed=0). б) Весь запрос формировать на клиенте. То есть отказаться от использования хран. проц. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2003, 09:14 |
|
Как будет работать быстрее
|
|||
---|---|---|---|
#18+
Привет! Сдается мне, что скорость будет ненамного выше в случае ХП. А учитывая простоту запроса, лучше его на клиенте формировать - ХП обычно для чего-нибудь потяжелее/посложнее используют. Кстати, форум обычно на хостинге базируется, а там ИБ не очень любят (разве что www.yournewhosing.com ). Поэтому лучше не привязываться к реализации ХП. Кстати, если пишешь форум - взгляни в стону eForum на jcorporate.com - неплохая реализация на JavaServlet's, к тому же многоплатформенная. WBR, Alexey ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2003, 11:53 |
|
Как будет работать быстрее
|
|||
---|---|---|---|
#18+
>> Сдается мне, что скорость будет ненамного выше в случае ХП. Мне тоже так кажется. Будет экономиться время на копмиляции процедуры. >> Кстати, форум обычно на хостинге базируется, а там ИБ не очень любят А я делаю не форум, а клиент к форуму - так что ib будет стоять у меня на машине :) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2003, 11:55 |
|
Как будет работать быстрее
|
|||
---|---|---|---|
#18+
У нас тоже форум на FB сделан, но для этого специально есть MySQL - СУБД для простого хранения и выборки данных. Если тебе не нужна обработка данных (ХП, триггеры, ссылочная целостность, подзапросы и т.п.) - для этого MySQL однозначно лучше, т.к. в нём функций SQL больше. А если тебе нужно обрабатывать данные нетривиальным образом - тогда, и нужен полноценный сервер, такой как IB. Только ты же должен понимать, что нормальный сервер (MySQL его только очень отдалённо напоминает) работает медленнее из-за всяких обработок транзакций, триггеров и т.п. Так что ты подумай, правильно ли ты СУБД выбрал ... ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2003, 13:10 |
|
Как будет работать быстрее
|
|||
---|---|---|---|
#18+
Спасибо за советы. Дело в том, что это не форум. Это клиент для форума. Есть в интернете форум, который предоставляет следующий сервис - если ты посылаешь ему определенный запрос, он возвращает тебе определенный ответ. То есть посылая определенные запросы, можно получать: а) какие сообщения появились на форуме начиная с определенной даты б) текст этих сообщений Моя программа получает эти сообщения, когда я нажимаю клавишу синхронизации и загружает новые сообщения в FB. Таким образом с FB работает только один человек - я и нагрузка на него небольшая. С другой стороны, так как я по работе работаю c MS SQL, то захотелось попробовать что-нибудь новое - например FB. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2003, 13:57 |
|
|
start [/forum/topic.php?fid=40&fpage=529&tid=1580930]: |
0ms |
get settings: |
11ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
36ms |
get topic data: |
10ms |
get forum data: |
7ms |
get page messages: |
41ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 140ms |
0 / 0 |