Форум: "Базы";
Текущий архив: 2003.11.20;
Скачать: [xml.tar.bz2];
ВнизТормоза при выборке из базы MSSql Server Найти похожие ветки
← →
Raduga (2003-10-31 09:11) [0]Здравствуйте, мастера.
Есть база SQL Server. Весит около 200 метров. Подключаюсь к ней через ADO (провайдер OLE DB Provider for SQL SErver). Пытаюсь через ADOQuery сделать выборку: select * from Table1 (в тайбле1 хранится основной объем данный и она является подчиненной). И прога не отвечает при выполнении этого запроса в теч 5 мин и более (более 5 мин я и не ждал). Где может быть ошибка? ADOQuery и ADOConnection на стороне сервера.
← →
paul_k (2003-10-31 09:27) [1]а точно у тебя "select * from table1" исполняется?
а не "select * from table1,table2"
проверь что прога передает серверу, воспользовавшись прогой Profiler от сервера. (или от клиента)
скорее всего select у тебя кривой
← →
bushmen (2003-10-31 09:45) [2]А сколько записей у тебя в основной этой таблице? Порядка
12 000 000 ? :)
← →
Sergey13 (2003-10-31 09:45) [3]Попробую предположить, что когда база вырастет до 400М и 10 минут не хватит. 8-)
>Где может быть ошибка?
В голове. Это как разруха. см. пр. Преображенского.
Но это мое предположение.
← →
bushmen (2003-10-31 09:53) [4]> Raduga (31.10.03 09:11)
А если тип курсора поставить clUseServer ?
← →
ZrenBy (2003-10-31 10:31) [5]http://www.sql.ru/forum/actualthread.aspx?bid=20&tid=53351
← →
bushmen (2003-10-31 10:52) [6]>ZrenBy ©
Это ты к чему?
← →
ZrenBy (2003-10-31 10:57) [7]>>bushmen © (31.10.03 10:52) [6]
К тормозам
← →
bushmen (2003-10-31 11:03) [8]>ZrenBy ©
Так в том топике ты же не сказал, что все получилось. :)
← →
Raduga (2003-10-31 11:09) [9]В том то и дело что курсоры на стороне сервера.
← →
Sergey13 (2003-10-31 11:18) [10]2Raduga
>в тайбле1 хранится основной объем данный и она является подчиненной
Так ты наверное ее фильтруешь сразу после открытия? Вот она и выкачивается вся, что бы отфильтроваться.
Но это мое предположение.
← →
Delirium (2003-10-31 11:19) [11]Раз курсор серверный, следовательно сервер - загружен. Остался открытым вопрос - для какой такой задачи потребовалась выборка в миллион записей ?
← →
Raduga (2003-10-31 11:32) [12]>Delirium © (31.10.03 11:19) [11]
Задача такая:
Раз в секунду нужно писать в базу показания датчика (числовое значение + время, когда записываем), датчиков 48...Работа круглосуточно. Вот и считайте. А потом эти показания надо выводить в виде графика и т.п. Хотя бы показания одного датчика, за сутки, так там тоже не мало записей будет.
← →
Sergey13 (2003-10-31 11:41) [13]2Raduga (31.10.03 11:32) [12]
>Хотя бы показания одного датчика, за сутки, так там тоже не мало записей будет.
Ну дык меньше же в 48 раз как минимум. 8-)
А график надо строить по всем записям (за Х лет) или только текущее значение? Может его строить ДО записи в БД? Типа пририсовал точечку по текущему значению, потом записал.
Но это мое предположение.
← →
Delirium (2003-10-31 11:43) [14]Ну так писать в базу это совсем не одно и то-же что читать из базы, писать можно очень много и очень быстро
← →
Raduga (2003-10-31 11:55) [15]Вот именно, по всем записям имеющимся в базе для данного датчика
(график привел для примера, можно и табличное представление). За три месяца - срок хранения показаний. Все равно записей немало будет.
← →
Sergey13 (2003-10-31 11:58) [16]А нафига в таблице представлять столько - это ИМХО еще более разруха. 8-(
← →
Raduga (2003-10-31 11:59) [17]Не мои требования...:(
← →
Sergey13 (2003-10-31 12:02) [18]Не моя реализация 8-(
← →
Delirium (2003-10-31 12:03) [19]Короче, раз стоит задача отображать в реал-тайме 1000000 записей, значит надо хранить сие локально и обновлять по событиям, см. UBPFD
← →
handra (2003-10-31 13:27) [20]блокировки? или тюнинг индексов (в т.ч. кластерных)?
← →
Anatoly Podgoretsky (2003-10-31 13:46) [21]Не поможет, он хочет вытянуть миллион записей, каждую надо разместить в памяти, выделить место, прочитать - любая из этих вешей будет медленна, особюенно если оперативки мало
← →
Johnmen (2003-10-31 14:20) [22]А как ты пишешь в базу ? В смысле, в таблицу ?
И еще. Тормоза в процессе записи или в процессе получения данных для отображения показаний в виде графика ?
← →
Raduga (2003-10-31 14:23) [23]>Anatoly Podgoretsky © (31.10.03 13:46) [21]
Так чтож делать-то (только советуйте пожалуйста по делу)
← →
Raduga (2003-10-31 14:25) [24]Не в процессе ЗАПИСИ, а в процссе выборки
← →
Delirium (2003-10-31 14:36) [25]Я тебе уже сказал что делать - хранить данные локально, т.е. на клиенте, и качать с сервера только новую инфу, ничего другого тут не придумаешь. А уж как ты реализуешь этоу подкачку - можно по рассуждать, вариантов - море. От локального MSSQL c репликацией, до сохранённого RecordSet-а. Как вариант можно рассмотреть локальную БД типа DBF и т.п.
← →
Johnmen (2003-10-31 14:39) [26]>Raduga (31.10.03 14:25) [24]
>Не в процессе ЗАПИСИ, а в процссе выборки
В процессе выборки для целей отображения ? Только для них ?
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.11.20;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.011 c