|
SQLPreview и DisableBind
|
|||
---|---|---|---|
#18+
Собственно наверно следовало разбить на два вопроса но у меня они в связке, поэтому спрошу так. Если установлено DisableBind (работа через ODBC - ASA 9), то в SQLPreview вместо вопросиков (?) ставятся реальные значения для полей. С помощью функции SetSQLPreview я могу заменить сгенерированное выражение на свое собственное, например вместо простого insert выполнить, например Код: plaintext 1. 2. 3. 4. 5.
Вопрос 1: Как получать внутри SQLPreview значения полей которые мне нужны для вставки и обновления? Первое что приходит в голову - dw.Object.colname.Primary[row] - для новых значений и dw.Object.colname.Primary.Original[row] для старых. Может можно как-то иначе? Вопрос 2: Есть ли разница в производительности при использовании DisableBind и без него? То есть, делает ли билдер Prepare запросу один раз и только подставляет потом значения вместо переменных когда не установлен DisableBind? Есть ли еще здесь какие подводные камни, например, когда есть большие varchar поля и общая длина запроса превысит какой-нибудь неописанный лимит? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2004, 08:48 |
|
SQLPreview и DisableBind
|
|||
---|---|---|---|
#18+
База данных (в моём случае Oracle и MS SQL Server) сохраняет execution plan выполненного запроса, и если тот-же запрос поступает ещё раз, то она использует сохранённый plan вместо строительства нового, что, есессно, экономит время. Если вместо знаков вопроса будут значения, то запрос не будет распознан базой как уже выполненный (только если будут те же значения параметров) - ведь сравнивается текст запроса до грамматического разбора - может, грамматический разбор и не нужен и можно воспользоваться старым (ведь именно ради этого вообще нагородили огород с вопросительными знаками). Однако разрабатывать, конечно, легче если в SQLPreview видны реальные значения, так что выход - перед коннектом определить екзешка это или PB environment и установоть соответственно DisableBind в 0 (вставлять знаки вопроса) или 1 (вставлять реальные значения). ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2004, 11:39 |
|
|
start [/forum/moderation_log.php?user_name=LexaK]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
get settings: |
13ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
99ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
others: | 672ms |
total: | 901ms |
0 / 0 |