powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / можно ли в firebird 1 в ХП создать параметр типа массива ?
25 сообщений из 27, страница 1 из 2
можно ли в firebird 1 в ХП создать параметр типа массива ?
    #32624872
Фотография Calm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сабж.

Нужно из прикладухи передавать несколько слов в ХП. Сколько - неизвестно ( примерно 1-50)
Много вызовов ХП с одним строковым параметром существенно уменьшают производительность.
В какую сторону стоит рыть, чтобы добиться оптимизации?

Использовать UDF не позволяет религия фирмы :(
Поиск по сайту и гуглю вразумительного ответа не дали :(
...
Рейтинг: 0 / 0
можно ли в firebird 1 в ХП создать параметр типа массива ?
    #32624952
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В одной длинной строке через разделитель
...
Рейтинг: 0 / 0
можно ли в firebird 1 в ХП создать параметр типа массива ?
    #32624957
Фотография Johnmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да просто один строковый параметр.
В нем сцепленные слова. Слова подравняешь пробелами до известного макс возможного размера.
В ХП разберешь строку с использованием SUBSTRING.
...
Рейтинг: 0 / 0
можно ли в firebird 1 в ХП создать параметр типа массива ?
    #32624963
Фотография Johnmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>hvlad
>В одной длинной строке через разделитель

Проблемы с разбором будут...:)
...
Рейтинг: 0 / 0
можно ли в firebird 1 в ХП создать параметр типа массива ?
    #32624995
Фотография Johnmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, проблемы при разборе всё равно будут. С SUBSTRING. Если FB1.
...
Рейтинг: 0 / 0
можно ли в firebird 1 в ХП создать параметр типа массива ?
    #32625142
Фотография Calm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дело осложняется тем, что каждое слово необходимо сопрвождать числом.
Сейчас делаю 10 параметров типа varchar и 10 shortint.

Самого коробит от неизящности решения :( , однако прирост производительности на лицо.
...
Рейтинг: 0 / 0
можно ли в firebird 1 в ХП создать параметр типа массива ?
    #32625169
Фотография Johnmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не знаю, что у тебя за задача. Но существует ещё такое решение.
Есть некая вспомогательная таблица, в которую сбрасываешь свой массив строк и чисел. Потом выполняешь запросы, которые коррелируют с этой таблицей по сброшенным тобой туда данным.
...
Рейтинг: 0 / 0
можно ли в firebird 1 в ХП создать параметр типа массива ?
    #32625201
Фотография Dnico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А еще можно попробовать BLOB + UDF!

http://rfunc.sourceforge.net/rus

Best regards,
Dnico.
...
Рейтинг: 0 / 0
можно ли в firebird 1 в ХП создать параметр типа массива ?
    #32625209
Фотография Calm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дело в том, что необходимо уменьшить количество обращений к БД.
К базе обращаются php-скрипты.
Сейчас пиковые моменты интенсивность превышает 15000 обработок в минуту.
Под обработкой подразумевается вызов ХП с преданным туда словом и числом.
Для удобства будем называть эту ХП DO_word()
15000 / мин это нормально сейчас, но должна выдерживаться нагрузка минимум в 10 раз выше.
Тормоза получаются при дергании из скриптов DO_word(). Время расходуется именно на вызов, а не на обработку.
Вызывая DO_word() с двумя словами, получаю прирост производительности в 2 раза. С десятью параметрами ожидаю прироста в 8-9 раз.

Помещать слова в некоторую дополнительную таблицу не имеет смысла, поскольку опять же будет идти вызов к БД.

Вот такие дела.
...
Рейтинг: 0 / 0
можно ли в firebird 1 в ХП создать параметр типа массива ?
    #32625212
Фотография Calm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Dnico
на UDF религия фирмы накладывает табу.
...
Рейтинг: 0 / 0
можно ли в firebird 1 в ХП создать параметр типа массива ?
    #32625291
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Johnmen>hvlad
>В одной длинной строке через разделитель

Проблемы с разбором будут...:)У меня проблем с разбором нет. Правда я использую UDF'ы ;)

В принципе, можно разбирать строку по-символьно с SUBSTRING, но если контора хочет быстродействия, то могу рекомендовать сменить религию ;)

С другой стороны, можно остановится на компромиссном варианте - сделать N пар-ров и M вызовов процедуры. Или перенести обработку на клиента - если основное время тратится на вызов процедуры, а не на её работу, то большого смысла в ней может и не быть ;)
...
Рейтинг: 0 / 0
можно ли в firebird 1 в ХП создать параметр типа массива ?
    #32625310
Фотография Calm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvlad, увы, обработка сводится к созданию в БД записей в соответствующих таблицах. Так что на клиент это не перенести :(
...
Рейтинг: 0 / 0
можно ли в firebird 1 в ХП создать параметр типа массива ?
    #32625330
Фотография Dnico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторна UDF религия фирмы накладывает табу.
Странная фирма ... UDF есть часть сервера ... как же без них то ?

Best regards,
Dnico.
...
Рейтинг: 0 / 0
можно ли в firebird 1 в ХП создать параметр типа массива ?
    #32625334
Фотография Calm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторкак же без них то ?

Пока не сталкивались с задачами, где нельзя обойтись без UDF.
Как столкнемся, так и религия изменится :)
...
Рейтинг: 0 / 0
можно ли в firebird 1 в ХП создать параметр типа массива ?
    #32625344
Фотография Dnico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так вот и пришло время ...
Запихиваешь параметры в BLOB (по параметру в строке), а в процедуре извлекаешь построчно и будет тебе праздник !!!

Best regards,
Dnico.
...
Рейтинг: 0 / 0
можно ли в firebird 1 в ХП создать параметр типа массива ?
    #32625359
Фотография Calm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пожалуй, имеет смысл пообщаться с нашим главным теологом.

Однако, коллеги, какие еще пути можно усмотреть, без использования UDF
?
...
Рейтинг: 0 / 0
можно ли в firebird 1 в ХП создать параметр типа массива ?
    #32625368
Фотография Dnico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Боюсь что больше предложений не последует ... вроде все обсудили.

Best regards,
Dnico.
...
Рейтинг: 0 / 0
можно ли в firebird 1 в ХП создать параметр типа массива ?
    #32625612
Фотография Johnmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>hvlad
>У меня проблем с разбором нет. Правда я использую UDF'ы ;)

Вот то-то и оно... Автор же четко сказал - без UDF.

>Calm

Ну так что с разбором с пом.SUBSTRING ?
...
Рейтинг: 0 / 0
можно ли в firebird 1 в ХП создать параметр типа массива ?
    #32626031
Фотография Calm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>>Ну так что с разбором с пом.SUBSTRING ?

Сегодня этот вопрос отложили.

Насколько я понял, с помощью SUBSTRING я должен последовательно перебирать каждый символ текста, определять, что сформировано очередное слово и вызывать свою ХП, я верно понял?

Возникает некоторое сомнение относительно быстродейственности этого.
Но все равно попробую завтра.
...
Рейтинг: 0 / 0
можно ли в firebird 1 в ХП создать параметр типа массива ?
    #32626033
Фотография Calm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторПроблемы с разбором будут...:)

Проблемы с быстродействием или SUBSTRING глючно работает?
...
Рейтинг: 0 / 0
можно ли в firebird 1 в ХП создать параметр типа массива ?
    #32626040
Фотография Johnmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Проблемы с быстродействием или SUBSTRING глючно работает?

Нет. Нет.
Проблемы с параметрами в SUBSTRING.
...
Рейтинг: 0 / 0
можно ли в firebird 1 в ХП создать параметр типа массива ?
    #32626045
Фотография Calm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
э-ээ... а пояснить чуть-чуть, если не затруднит ? :)

уверен, что ваш совет минимизирует количество граблей, на которые я буду наступать :))
...
Рейтинг: 0 / 0
можно ли в firebird 1 в ХП создать параметр типа массива ?
    #32626054
Фотография Johnmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
глянь

Лично я не проверял...:)
...
Рейтинг: 0 / 0
можно ли в firebird 1 в ХП создать параметр типа массива ?
    #32626156
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DnicoТак вот и пришло время ...
Запихиваешь параметры в BLOBТолько не в блоб (лишний сетевой вызов, afaik).
50 пар-ров вполне поместятся в varchar(4096), если не поместятся-то в varchar(32767) ;)
...
Рейтинг: 0 / 0
можно ли в firebird 1 в ХП создать параметр типа массива ?
    #32626526
Фотография Calm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЛично я не проверял...:)
хе-х..
у них там глюки в FB 1.5 , а у меня всего лишь 1.0..
Но все равно попробую...
...
Рейтинг: 0 / 0
25 сообщений из 27, страница 1 из 2
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / можно ли в firebird 1 в ХП создать параметр типа массива ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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