Страница: 1 |
Вопрос: VBScript_SQLServer2000 | Добавлено: 17.08.04 13:15 |
Автор вопроса: ![]() |
Привет!
Работаю над архивом SCADA системы. Использую встроеный в SCADA систему VBScript и SQLServer 2000. Каждую секунду в БД записываются состояния всех объектов SCADA системы. Надо последовательно вычитывать строки из БД для просмотра состояния объектов за какой то промежуток времени, чтобы получилось типа "кино". Есть проблемка в скорости вычитывания данных из БД. В начале таблицы вычитывает быстро. Можно вести просмотр с интервалом в 1 секунду и меньше. Но если строк в таблице больше 50 тыс. скорость снижается. Для доступа к БД использую следующий код: Dim rs As Object Set rs = CreateObject("ADODB.Recordset") rs.open "day_" & user_dd, "DSN=movie;UID=;PWD=;", 0, 1, 2 ... hours = rs.fields("hour") mins = rs.fields("min") sec = rs.fields("sec") ... Посоветуйте как быть. Заранее спасибо. |
Ответы | Всего ответов: 3 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() ![]() ![]() Вопросов: 11 Ответов: 37 |
Профиль | Цитата | #1 | Добавлено: 20.08.04 00:55 |
1. Проиндексировать таблицу
2. Написать stored procedure с нормальным критерием, а не тащить всю таблицу целиком - ты же сервер душишь. 3. Подключаться не через строчку каждый раз, а явно объявить connection. 4. Вместо rs.fields("min" ![]() |
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 289429121 Вопросов: 4 Ответов: 9 |
Профиль | Цитата | #2 | Добавлено: 20.08.04 10:30 |
Переделал таким образом:
Dim rs As Object Dim cn As Object user_day = "day_" & user_dd Set cn = CreateObject("Adodb.Connection" ![]() cn.Provider = "sqloledb" ProvStr = "Server=HEX ![]() cn.Open ProvStr Set rs = CreateObject("ADODB.Recordset" ![]() rs.ActiveConnection = cn rs.open "select * from " & user_day & " where hour = " & hours.value & " And min = " & mins.value ... Вместо rs.fields("min" ![]() И об stored procedure можно немного прояснить. Заранее огромное спасибо. P.S. В VBScript и SQL новичок. |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 289429121 Вопросов: 4 Ответов: 9 |
Профиль | Цитата | #3 | Добавлено: 26.08.04 17:57 |
А как работать с rs.GetRows?
И всетаки чем запись rs.fields("min" ![]() Пожалуйста просветите! Заранее спасибо. |
Страница: 1 |
|