Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.012 c
3-65756
Yu
2003-10-31 14:40
2003.11.20
DBLookupComboBox


1-65934
BlackKing
2003-11-11 12:39
2003.11.20
Как определить, есть ли у компонента заданная функция?


14-66100
servs
2003-10-28 14:47
2003.11.20
чисто академическая задача по алгоритмам


1-65825
r00t
2003-11-08 10:39
2003.11.20
Помогите сократить код...


1-65895
Xedin
2003-11-08 14:42
2003.11.20
writeln и printf ??????????????





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский