|
|
|
можно ли в firebird 1 в ХП создать параметр типа массива ?
|
|||
|---|---|---|---|
|
#18+
Сабж. Нужно из прикладухи передавать несколько слов в ХП. Сколько - неизвестно ( примерно 1-50) Много вызовов ХП с одним строковым параметром существенно уменьшают производительность. В какую сторону стоит рыть, чтобы добиться оптимизации? Использовать UDF не позволяет религия фирмы :( Поиск по сайту и гуглю вразумительного ответа не дали :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2004, 12:22:41 |
|
||
|
можно ли в firebird 1 в ХП создать параметр типа массива ?
|
|||
|---|---|---|---|
|
#18+
В одной длинной строке через разделитель ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2004, 12:47:43 |
|
||
|
можно ли в firebird 1 в ХП создать параметр типа массива ?
|
|||
|---|---|---|---|
|
#18+
Да просто один строковый параметр. В нем сцепленные слова. Слова подравняешь пробелами до известного макс возможного размера. В ХП разберешь строку с использованием SUBSTRING. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2004, 12:49:41 |
|
||
|
можно ли в firebird 1 в ХП создать параметр типа массива ?
|
|||
|---|---|---|---|
|
#18+
>hvlad >В одной длинной строке через разделитель Проблемы с разбором будут...:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2004, 12:50:33 |
|
||
|
можно ли в firebird 1 в ХП создать параметр типа массива ?
|
|||
|---|---|---|---|
|
#18+
Кстати, проблемы при разборе всё равно будут. С SUBSTRING. Если FB1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2004, 12:59:37 |
|
||
|
можно ли в firebird 1 в ХП создать параметр типа массива ?
|
|||
|---|---|---|---|
|
#18+
Дело осложняется тем, что каждое слово необходимо сопрвождать числом. Сейчас делаю 10 параметров типа varchar и 10 shortint. Самого коробит от неизящности решения :( , однако прирост производительности на лицо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2004, 13:40:10 |
|
||
|
можно ли в firebird 1 в ХП создать параметр типа массива ?
|
|||
|---|---|---|---|
|
#18+
Я не знаю, что у тебя за задача. Но существует ещё такое решение. Есть некая вспомогательная таблица, в которую сбрасываешь свой массив строк и чисел. Потом выполняешь запросы, которые коррелируют с этой таблицей по сброшенным тобой туда данным. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2004, 13:45:47 |
|
||
|
можно ли в firebird 1 в ХП создать параметр типа массива ?
|
|||
|---|---|---|---|
|
#18+
А еще можно попробовать BLOB + UDF! http://rfunc.sourceforge.net/rus Best regards, Dnico. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2004, 13:54:51 |
|
||
|
можно ли в firebird 1 в ХП создать параметр типа массива ?
|
|||
|---|---|---|---|
|
#18+
Дело в том, что необходимо уменьшить количество обращений к БД. К базе обращаются php-скрипты. Сейчас пиковые моменты интенсивность превышает 15000 обработок в минуту. Под обработкой подразумевается вызов ХП с преданным туда словом и числом. Для удобства будем называть эту ХП DO_word() 15000 / мин это нормально сейчас, но должна выдерживаться нагрузка минимум в 10 раз выше. Тормоза получаются при дергании из скриптов DO_word(). Время расходуется именно на вызов, а не на обработку. Вызывая DO_word() с двумя словами, получаю прирост производительности в 2 раза. С десятью параметрами ожидаю прироста в 8-9 раз. Помещать слова в некоторую дополнительную таблицу не имеет смысла, поскольку опять же будет идти вызов к БД. Вот такие дела. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2004, 13:58:11 |
|
||
|
можно ли в firebird 1 в ХП создать параметр типа массива ?
|
|||
|---|---|---|---|
|
#18+
2 Dnico на UDF религия фирмы накладывает табу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2004, 13:58:56 |
|
||
|
можно ли в firebird 1 в ХП создать параметр типа массива ?
|
|||
|---|---|---|---|
|
#18+
Johnmen>hvlad >В одной длинной строке через разделитель Проблемы с разбором будут...:)У меня проблем с разбором нет. Правда я использую UDF'ы ;) В принципе, можно разбирать строку по-символьно с SUBSTRING, но если контора хочет быстродействия, то могу рекомендовать сменить религию ;) С другой стороны, можно остановится на компромиссном варианте - сделать N пар-ров и M вызовов процедуры. Или перенести обработку на клиента - если основное время тратится на вызов процедуры, а не на её работу, то большого смысла в ней может и не быть ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2004, 14:19:36 |
|
||
|
можно ли в firebird 1 в ХП создать параметр типа массива ?
|
|||
|---|---|---|---|
|
#18+
hvlad, увы, обработка сводится к созданию в БД записей в соответствующих таблицах. Так что на клиент это не перенести :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2004, 14:24:55 |
|
||
|
можно ли в firebird 1 в ХП создать параметр типа массива ?
|
|||
|---|---|---|---|
|
#18+
авторна UDF религия фирмы накладывает табу. Странная фирма ... UDF есть часть сервера ... как же без них то ? Best regards, Dnico. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2004, 14:28:50 |
|
||
|
можно ли в firebird 1 в ХП создать параметр типа массива ?
|
|||
|---|---|---|---|
|
#18+
авторкак же без них то ? Пока не сталкивались с задачами, где нельзя обойтись без UDF. Как столкнемся, так и религия изменится :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2004, 14:30:59 |
|
||
|
можно ли в firebird 1 в ХП создать параметр типа массива ?
|
|||
|---|---|---|---|
|
#18+
Так вот и пришло время ... Запихиваешь параметры в BLOB (по параметру в строке), а в процедуре извлекаешь построчно и будет тебе праздник !!! Best regards, Dnico. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2004, 14:33:56 |
|
||
|
можно ли в firebird 1 в ХП создать параметр типа массива ?
|
|||
|---|---|---|---|
|
#18+
пожалуй, имеет смысл пообщаться с нашим главным теологом. Однако, коллеги, какие еще пути можно усмотреть, без использования UDF ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2004, 14:36:57 |
|
||
|
можно ли в firebird 1 в ХП создать параметр типа массива ?
|
|||
|---|---|---|---|
|
#18+
Боюсь что больше предложений не последует ... вроде все обсудили. Best regards, Dnico. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2004, 14:39:56 |
|
||
|
можно ли в firebird 1 в ХП создать параметр типа массива ?
|
|||
|---|---|---|---|
|
#18+
>hvlad >У меня проблем с разбором нет. Правда я использую UDF'ы ;) Вот то-то и оно... Автор же четко сказал - без UDF. >Calm Ну так что с разбором с пом.SUBSTRING ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2004, 15:47:42 |
|
||
|
можно ли в firebird 1 в ХП создать параметр типа массива ?
|
|||
|---|---|---|---|
|
#18+
>>Ну так что с разбором с пом.SUBSTRING ? Сегодня этот вопрос отложили. Насколько я понял, с помощью SUBSTRING я должен последовательно перебирать каждый символ текста, определять, что сформировано очередное слово и вызывать свою ХП, я верно понял? Возникает некоторое сомнение относительно быстродейственности этого. Но все равно попробую завтра. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2004, 18:07:58 |
|
||
|
можно ли в firebird 1 в ХП создать параметр типа массива ?
|
|||
|---|---|---|---|
|
#18+
авторПроблемы с разбором будут...:) Проблемы с быстродействием или SUBSTRING глючно работает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2004, 18:09:05 |
|
||
|
можно ли в firebird 1 в ХП создать параметр типа массива ?
|
|||
|---|---|---|---|
|
#18+
>Проблемы с быстродействием или SUBSTRING глючно работает? Нет. Нет. Проблемы с параметрами в SUBSTRING. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2004, 18:18:32 |
|
||
|
можно ли в firebird 1 в ХП создать параметр типа массива ?
|
|||
|---|---|---|---|
|
#18+
э-ээ... а пояснить чуть-чуть, если не затруднит ? :) уверен, что ваш совет минимизирует количество граблей, на которые я буду наступать :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2004, 18:23:14 |
|
||
|
можно ли в firebird 1 в ХП создать параметр типа массива ?
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2004, 18:29:45 |
|
||
|
можно ли в firebird 1 в ХП создать параметр типа массива ?
|
|||
|---|---|---|---|
|
#18+
DnicoТак вот и пришло время ... Запихиваешь параметры в BLOBТолько не в блоб (лишний сетевой вызов, afaik). 50 пар-ров вполне поместятся в varchar(4096), если не поместятся-то в varchar(32767) ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2004, 19:59:06 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=32625330&tid=1578172]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
205ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
64ms |
get tp. blocked users: |
1ms |
| others: | 190ms |
| total: | 500ms |

| 0 / 0 |
