Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.09.20;
Скачать: CL | DM;

Вниз

результат запроса в массив   Найти похожие ветки 

 
balepa   (2008-11-20 11:31) [0]

использую компаненты zeos. в zquery выполняю следующий запрос select f1,f2,f3 from table where...
затем zquery.open и в цикле _ldt[i]:=zquery.fields[1].value;
zquery.next; получается медленно,
а можно ли вернуть значения поля всех записей в массив без использования цикла. mysql4.1


 
Ega23 ©   (2008-11-20 11:32) [1]

а zquery - не массив?  :)


 
Сергей М. ©   (2008-11-20 11:39) [2]


> можно ли вернуть значения поля всех записей в массив без
> использования цикла


Нельзя.


> получается медленно


Цикл в этом не виноват.


 
balepa   (2008-11-20 11:58) [3]

так я на цикл не наговариваю.


 
Сергей М. ©   (2008-11-20 12:04) [4]

Ну ты же сказал что "без использовния цикла", это и дало повод думать иначе)


 
ilshat   (2008-11-20 12:09) [5]

А zquery отображается в каком нить гриде? Ато народ частенько забывает о существовании DisableControls/EnableControls. Да и скажите для чего вам дата сет в массиве?


 
azamat ©   (2008-11-20 12:11) [6]

а массив(любой) вообще можно без цикла заполнить разве?


 
Сергей М. ©   (2008-11-20 12:12) [7]


> azamat ©   (20.11.08 12:11) [6]


Можно. Коран не запрещает)


 
Anatoly Podgoretsky ©   (2008-11-20 12:24) [8]

> Ega23  (20.11.2008 11:32:01)  [1]

Не массив, а множество в терминах реляционных БД


 
balepa   (2008-11-20 12:24) [9]

в gride неотображается, будет передаваться в excel и отображаться на форме в лабелах. бд на удаленном пк.


 
Sergey13 ©   (2008-11-20 12:27) [10]

> [9] balepa   (20.11.08 12:24)
> в gride неотображается, будет передаваться в excel и отображаться
> на форме в лабелах. бд на удаленном пк.

Т.е. ты собираешься удалять гланды электодрелью через.... Бог в помощь.


 
Сергей М. ©   (2008-11-20 12:30) [11]


> бд на удаленном пк


С этого и надо начинать при поисках "тормозов".
Ну и с архитектуры самой БД (даже в 1-ю очередь)


 
balepa   (2008-11-20 12:39) [12]

в принципе большая скорость неважна, большой объем только в начале а потом будет подгружаться по ~800.


 
balepa   (2008-11-20 12:49) [13]

структура таблицы: key autoinc,pnp int,dt datetime,znach double. индексы на pnp и dt.


 
balepa   (2008-11-20 12:56) [14]

вы пока пишите задавайте вопросы, зайду попозже,а то заколебался с сотки писать


 
Сергей М. ©   (2008-11-20 12:57) [15]

А какое условие ты используешь в своем запросе в WHERE-статье ?


 
Сергей М. ©   (2008-11-20 12:59) [16]

А какое условие ты используешь в своем запросе в WHERE-статье ?

Давай уже конкретный текст запроса приводи ..


 
balepa   (2008-11-21 06:23) [17]

select dt,pnp,znach from t where ((pnp=number) and (dt between dateA And dateB))


 
balepa   (2008-11-21 06:33) [18]

сам запрос быстро результат возвращает (~60000  записей за 0.4-0.5 сек.,кол записей может быть больше в дальнейшем), проблема в том как за максимально короткое время перекинуть результат запроса в массив


 
Сергей М. ©   (2008-11-21 08:16) [19]

поля pnp и dt индексированы ?


 
Sergey13 ©   (2008-11-21 09:01) [20]

> [18] balepa   (21.11.08 06:33)
> сам запрос быстро результат возвращает (~60000  записей за 0.4-0.5 сек.,

то, что ты видишь первые записи набра данных еще не значит, что весь НД уже на клиенте.


 
Anatoly Podgoretsky ©   (2008-11-21 09:02) [21]

> balepa  (21.11.2008 6:33:18)  [18]

Зачем?


 
balepa   (2008-11-21 09:40) [22]

Сергей М.:
pnp и dt индексированы.
Анатолий Подг:
1)данные будут передаваться в excel в подготовленый шаблон с графиком,для этого в принципе большая скорость ненужна;
2)будут отображаться графики за 10 мин,1 час, 24 часа вот тут для первонач. загр. даных и надо бы побыстрее передовать в массив (mas:aray[2,800,600]),где 800 кол парам; 600 данные за 10 мин,1 час и 24 часа потом с ним проще работать, потом данные будут подгружаться по мере поступления (не менее 2x800 записей в сек.)


 
Сергей М. ©   (2008-11-21 09:52) [23]


> balepa   (21.11.08 09:40) [22]


1. Курсор клиентский или серверный ?
2. Запрос только для чтения ?
3. Запрос однонаправленный ?


 
balepa   (2008-11-21 09:54) [24]

графики за час: 300 чисел с мин змачениями и 300 с макс знач в из даных в промежутке 12 сек; 24 часа промежуток 4 мин n сек. Пока писал пришел к выводу что формировать данные для графиков 10 мин,1 час,24 часа нужно на сервере в отдельных таблицах. вроде вопрос теоретически решен, но если будут какието др. идеи пишите.


 
balepa   (2008-11-21 10:01) [25]

Сергей М. [23]
Запросы только на чтение с клиентских пк, на добавление на "серв пк" каждую сек 800 зап.


 
Сергей М. ©   (2008-11-21 10:07) [26]


> balepa   (21.11.08 10:01) [25]


Модифицирующие запросы пока не интересуют.

Еще раз спрашиваю про селективный запрос (тот самый который якобы возвращает ~60000 записей):

1. Курсор результирующего НД клиентский или серверный ?
2. Результирующий НД однонаправленный ?


 
Anatoly Podgoretsky ©   (2008-11-21 10:19) [27]

> balepa  (21.11.2008 9:40:22)  [22]

Скорость загрузки массива несоизмерима со скорость выполнения запрос и со скорость его передачи клиенту, даже при локальной базе.
Если у тебя долго, то значит ты что то неправильно делаешь.


 
balepa   (2008-11-21 10:26) [28]

1.недопонял. наверно на клиенте.
2. да


 
Сергей М. ©   (2008-11-21 10:41) [29]


> balepa   (21.11.08 10:26) [28]


> наверно на клиенте


Выясняй. Это важно.


 
balepa   (2008-11-21 10:53) [30]

поставил bp после zquery.activ:=true "выдернул сетку" данные считываются из zquery.fields[n].value.


 
Anatoly Podgoretsky ©   (2008-11-21 11:00) [31]

mas:aray[2,800,600]) = 800*600 = 480 000, ну ни как не стыкуется с утверждением 60 000 записей. А количесто ячеек 960 000

Сколько уже сообщений - 30, а информации до сих пор почти 0


 
Сергей М. ©   (2008-11-21 11:15) [32]


> balepa   (21.11.08 10:53) [30]


Это ты о чем ?)


 
balepa   (2008-11-21 11:22) [33]

анатолий это максимальное колво а пока 60000


 
Anatoly Podgoretsky ©   (2008-11-21 11:38) [34]

> balepa  (21.11.2008 11:22:33)  [33]

Да не оправдание нужны, а демонстрирование кодом и сообещением технических потребностей, а пока только треп. И благодари бога, что мы пока еще на тебя не плюнули, в переносном смысле конечно.


 
Sergey13 ©   (2008-11-21 11:40) [35]

И все таки, после 30 с лишним постов, непонятен сам смысл перегонки датасета в массив.

Т.е.
> [1] Ega23 ©   (20.11.08 11:32)


 
balepa   (2008-11-21 11:41) [36]

о том что все записи после выполнения запроса на клиентской стороне


 
Anatoly Podgoretsky ©   (2008-11-21 11:45) [37]

> Sergey13  (21.11.2008 11:40:35)  [35]

Там еще речь стоит и об Экселе, а тут уже проблема, если Эксель ниже 2007 - не влезет ни линейно 480 000xN, ни в виде 2d таблицы 800x600


 
Сергей М. ©   (2008-11-21 11:50) [38]


> balepa   (21.11.08 11:41) [36]


Если на клиентской, то никаких тормозов при выполнении допустимых методов навигации быть не должно.

А что такое "выдернул сетку" ?)


 
Sergey13 ©   (2008-11-21 12:01) [39]

> [37] Anatoly Podgoretsky ©   (21.11.08 11:45)
> Там еще речь стоит и об Экселе

Там речь шла еще и об отображении на форме в лабелах.
> [9] balepa   (20.11.08 12:24)


 
balepa   (2008-11-21 14:49) [40]

по поводу excel"a: в excel будут передаваться не все 480000, а только те которые нах в промежутке datea-dateb и в зависимости от промежутка м/у датами,не повсем параметрам а по выбраным в разные таблицы и только по запросу пользователя
про сетку: выдернул сетевой кабель



Страницы: 1 2 вся ветка

Текущий архив: 2009.09.20;
Скачать: CL | DM;

Наверх




Память: 0.55 MB
Время: 0.011 c
15-1248119778
DVM
2009-07-20 23:56
2009.09.20
Вопрос по препроцессору С


15-1248179677
TUser
2009-07-21 16:34
2009.09.20
Затмение


2-1247840411
webpauk
2009-07-17 18:20
2009.09.20
Порядок Align


15-1248033359
Юрий Зотов
2009-07-19 23:55
2009.09.20
Сам дурак, или как?


15-1248251235
картман
2009-07-22 12:27
2009.09.20
Структура БД. II