вопрос про MSSQL
- From
- Dimitry Lapchik (2:5004/29.1)
- To
- All (2:5054/37.63)
- Date
- 2005-02-25T12:47:56Z
- Area
- SU.DBMS.SQL
Пpивет, All !
Каким образом можно хранить целочисленное значение, установленное для сессии и
получать к нему доступ максимально быстро? Это значение используется для отбора
во view. Результаты тестирования показали, что при хранении этого значения в
таблице БД и выборе его при помощи select по @@spid некая задача выполняется за
6 минут.
Если подставить константу, то время выполнения этой же задачи сокращается до
3:20 (результат, к которому стремимся приблизиться).
Была разработана простейшая внешняя процедура (ESP) на C++ (MSVC 6.0, в которой
был реализован
доступ к массиву целых чисел и делалась загрузка/выборка значений по @@spid), к
всеобщему удивлению время выполнения задачи увеличилось до 17 минут.
По сути необходимо оперативно хранить для сессии всего 1 бит информации.
Рассматривался вариант использования младшего бита сессионной переменной
@@TEXTSIZE, но ситуация осложняется тем, что есть возможность выполнять на
сервере только хранимые процедуры, функции и триггеры. А после выхода из
процедуры сервер забывает состояние этой переменной и замещает его тем, которое
было установлено для сессии "глобально". Можно ли каким-то образом изменить
"глобальное" значение для сессии из хранимой процедуры? Или быть может это
можно
сделать из внешней хранимой процедуры?
С yважением, Dimitry.
---
* Origin: -= The Club of Beer Lovers =- ICQ#8863442 (2:5004/29.1)
SEEN-BY: 46/50 450/1024 463/68 464/36 910 5000/0 104 170 5000 5004/1 11 16 26
SEEN-BY: 5004/29 30 46 48 58 70 75 550 710 1111 5005/14 5010/53 77 5011/13
SEEN-BY: 5013/21 5015/10 5019/31 5020/545 4441 5021/29 5025/3 5026/10 5027/16
SEEN-BY: 5029/34 5030/115 5035/38 5036/34 5047/43 5054/1 8 9 28 35 37 45 63 67
SEEN-BY: 5057/119 5058/24 5069/7 5080/68 1003 5085/13 5090/1029 5095/20
SEEN-BY: 6000/12 254 6035/1
PATH: 5004/29 16 1111 5000/5000 5020/545 5054/1 37