Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Посоветуйте как сделать...
|
|||
|---|---|---|---|
|
#18+
...На словах. Общую концепцию. Первое, второе, следующее. Если не в лом то с указанием соответствующих свойств необходимых компонентов или кусок кода. Есть база(SQL). ADOConnection, ADOQuery, DataSource, DBGrid. Как сделать чтобы таблица с большим количеством записей загружалась быстро. А то при таком вот стандартном раскладе 500 тыс. - 1,5 мин. в локальной сети. Программа на этапе разработки, и есть большое желание устранить этот бардак. Но в литературе ничего внятного пока не нашел. Между тем у MS все записи при открытии таблицы в EM грузятся довольно быстро. Понятно что там грузятся какие то порции. Но хотелось бы иметь такое же у себя. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2003, 12:16 |
|
||
|
Посоветуйте как сделать...
|
|||
|---|---|---|---|
|
#18+
Зачем тебе сразу аж 500 000 записей? Ты не с фокспро случайно перешел? -- Tygra's -- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2003, 13:28 |
|
||
|
Посоветуйте как сделать...
|
|||
|---|---|---|---|
|
#18+
Если есть вычисляемые поля или сумма например считается, то гдето такая скорость и будет. Хотя все равно тормозно, запрос покажи... Viman ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2003, 13:51 |
|
||
|
Посоветуйте как сделать...
|
|||
|---|---|---|---|
|
#18+
2Viman Так тож не на клиенте считать надо... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2003, 13:53 |
|
||
|
Посоветуйте как сделать...
|
|||
|---|---|---|---|
|
#18+
А кто говорил про клиента? Viman ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2003, 14:00 |
|
||
|
Посоветуйте как сделать...
|
|||
|---|---|---|---|
|
#18+
Делаю лентяйку под определенные задачи для работы с объектами сервера. Т.к. заказчики начинающие люди которым поставляется система на основе SQL Server и главное женщины в районе среднего возраста. Понятно что несколько других программ разрабатываемых в рамках одного заказа имеют конкретную направленность и оперируют в основном тремя (или чуть более)параметрами объекта. Отсюда и запросы пишутся боле менее конкретные но не универсальные. Опуская детали, таблицы загружаются полностью. Как в ЕМ. По запросу "SELECT * " в ADOQuery. Затем идет поиск, сортировка, правка записей. Но в EM это быстро, видимо идет порция загрузки, и затем подкачка при прокрутке. Вычисляемых полей нет. Когда загружается форма как в EM в ней нарисованы некоторые условия для работы с записями для юзера не знакомого с T-SQL. Потому набор записей надо весь. Или как то обрабатывать. Технически. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2003, 14:40 |
|
||
|
Посоветуйте как сделать...
|
|||
|---|---|---|---|
|
#18+
автор писал:Опуская детали, таблицы загружаются полностью. Как в ЕМ. По запросу "SELECT * " в ADOQuery. Затем идет поиск, сортировка, правка записей. Но в EM это быстро, видимо идет порция загрузки, и затем подкачка при прокрутке. Вычисляемых полей нет. Когда загружается форма как в EM в ней нарисованы некоторые условия для работы с записями для юзера не знакомого с T-SQL. Потому набор записей надо весь. Или как то обрабатывать. Технически. Да ты чего, в своем ли уме? При чем тут юзер и T-SQL? Ты фильтры не умеешь чтоли делать на основе запросов? У юзеров стоят Р4 с 2 Гб памяти? С 500 000 записей ты только 5 минут один фильтр накладывать будешь. И еще столько же снимать. Ты где учился так программы то писать? Я не в обиду - это бред. Полнейший. SELECT * . А where field1 = @value1 не умеешь? Вот те некоторые условия для работы с записями для юзера не знакомого с T-SQL не умеешь в параметры запроса перевести? А потом вот и получается - клиент-серверные программы плохо работают и медленно. Ты уж спроси, расскажем как сделать. -- Tygra's -- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2003, 15:33 |
|
||
|
Посоветуйте как сделать...
|
|||
|---|---|---|---|
|
#18+
Я тебе Tygra один умный весч скажу, только ты не обижайся. Возможно ты не видел как открываются таблицы в ЕМ. И как идет работа там с этими таблицами. Владеть Where конечно хорошо. Чем я и владею не хуже среднего уровня. И параметрами кстати тоже. Однако по наблюдениям в своей фирме столкнулся с одной вещью. Маститые программеры (всю жизнь в программировании) столкнулись с тем что базы выросли, на них действительно навешиваются и вычисляемые вещи, и некоторый анализ данных (не надо пока про OLAP, не актуально) и др. И все WHERE которые они изобретают(сейчас, а не ранее), становятся фуфлом. Так вот это самое Where - игла на которой сидят куча программеров и ширяются приставляя то к голове, то к жопе. А если это же условие совместить, например с постраничным чтением, то можно даже самый черепаший запрос сделать шустрее самого шустрого(визуально конечно, но юзеру то плевать что там в кишках программы творится). Вот Билли знает про это и кушает ананасы с шампанским. А мы "жрем что дают". Короче открой таблу с млн. записей в EM и выйди на свет. И задай себе вопрос. Почему клиент-серверная программа EM работает быстро, а наши "...А потом вот и получается - клиент-серверные программы плохо работают и медленно..." Именно в этом и заключался первоначальный вопрос. А именно "как загрузить порцию данных" и затем прокручивать порциями (или постранично). Просто в книге не нашел, думал - тут кто то знает методику. Табла с 500 тыс. просто для отработки задачи. Я свои задачи гоняю на самых предельных величинах кол-ва записей какие найду. Здесь для меня задача новая (именно с дополнением к Where еще чего то), чтобы (хотя бы визуально) загружалось быстро. Затем наработанные знания буду применять совместно с WHERE. PS. Если ошибся в выбранной цели так обсудите кому не лень. Может изменю свое мнение. Лучше раньше, чем никогда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2003, 11:35 |
|
||
|
Посоветуйте как сделать...
|
|||
|---|---|---|---|
|
#18+
2Kidd Я не знаю кто такой ЕМ, наверное это уважаемый господин. Но, на обработку данных можно посмотреть с "физической" стороны: 1. есть сервер, который работает _очень_ быстро. 2. есть клиент, который работает просто быстро. 3. между ними есть кабель, по которому данные текут _очень_ медленно. Из физики мы знаем, что общая скорость процесса определяется самой медленной компонентой. То есть, если все данные перегонять по кабелю, то всегда будет получаться медленно. И если mr.ЕМ что- то делает быстро, то он наверняка не занимается перегонкой данных. Подумай над этим. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2003, 12:06 |
|
||
|
Посоветуйте как сделать...
|
|||
|---|---|---|---|
|
#18+
2S.G. Если это не пятничный прикол, то EM - это Enterprise Manager. Утилита являющаяся основным инструментом DBA при работе с SQL Server. Может устанавливаться как на сервер, так и на клиента для работы с сервером. Естественно является клиентом по отношению к серверу баз данных и подключается как клиентская программа. В нем есть дерево объектов. В этом дереве таблицы. Каждая таблица при открытии может показать либо всё (относительно конечно), либо N ое кол-во(какое сам назначишь) Отсюда: 1. есть сервер, который работает _очень_ быстро. 2. есть клиент (Еnterprise Мanager, DB Artisan Change и др.), который работает просто быстро. На месте данных стандартных продуктов могла бы находиться и ваша разработка. Не уступая им по быстродействию. 3. между ними есть кабель, по которому данные текут _ достаточно_ быстро . Из физики мы знаем, что общая скорость процесса определяется самой медленной компонентой. То есть, если не все данные перегонять по кабелю, а порциями (к примеру как то постранично что ли) то всегда будет получаться достаточно быстро . И если mr.ЕМ что- то делает быстро, то он наверняка не занимается перегонкой данных. Подумай над этим. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2003, 12:18 |
|
||
|
Посоветуйте как сделать...
|
|||
|---|---|---|---|
|
#18+
2 Kidd Блин, ему про одно, а он про другое. Ну и поставь всем юзерам ЕМ, найчи писать на T-SQL и флаг в руки автор писал:А если это же условие совместить, например с постраничным чтением, то можно даже самый черепаший запрос сделать шустрее самого шустрого(визуально конечно, но юзеру то плевать что там в кишках программы творится). Вот Билли знает про это и кушает ананасы с шампанским. А мы "жрем что дают". Это ты жрешь что дают , остальные нормально работают. Так что не надо тут про всех, если ты не умеешь. А если еще условие совместить с нормальными мозгами то станет понятно, что 500 000 записей не нужно ни постранично, ни как. Если на клиент обычно приходит больше 2000 записей в любой форме, то нужно менять работу срочно. автор писал:Маститые программеры (всю жизнь в программировании) столкнулись с тем что базы выросли, на них действительно навешиваются и вычисляемые вещи, и некоторый анализ данных (не надо пока про OLAP, не актуально) и др. И все WHERE которые они изобретают(сейчас, а не ранее), становятся фуфлом. Ты так и скажи, что SQL не знаешь. автор писал:Короче открой таблу с млн. записей в EM и выйди на свет Я не говорил, что я больной - это тебе нужен миллион записей. Мне не надо столько. Штук 40 хватит автор писал:И задай себе вопрос. Почему клиент-серверная программа EM работает быстро, а наши "...А потом вот и получается - клиент-серверные программы плохо работают и медленно..." Это твои программы работают медленно - а мы то как раз писать быстро работающие программы умеем. автор писал:Именно в этом и заключался первоначальный вопрос. А именно "как загрузить порцию данных" и затем прокручивать порциями (или постранично). Просто в книге не нашел, думал - тут кто то знает методику. И первоначальный ответ - зачем??? Не умеешь запросы писать - зачем тогда с БД работать? автор писал:Здесь для меня задача новая (именно с дополнением к Where еще чего то), чтобы (хотя бы визуально) загружалось быстро. Затем наработанные знания буду применять совместно с WHERE. Это как в анекдоте чтоли: Сегодня начинаем занятия по прыжкам в бассейн с вышки. Чтобы не утонули, сначала будете прыгать в пустой бассейн. автор писал:Утилита являющаяся основным инструментом DBA при работе с SQL Server. Может устанавливаться как на сервер, так и на клиента для работы с сервером. Естественно является клиентом по отношению к серверу баз данных и подключается как клиентская программа. В нем есть дерево объектов. В этом дереве таблицы. Каждая таблица при открытии может показать либо всё(относительно конечно), либо N ое кол-во(какое сам назначишь Вот я и говорю - ставь всем ЕМ и не парься. И Подумай над этим - зачем тебе нужен sql сервер???? -- Tygra's -- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2003, 12:40 |
|
||
|
Посоветуйте как сделать...
|
|||
|---|---|---|---|
|
#18+
Лень мне с тобой спорить Tygra, но одно скажу наверняк. Если бы я столкнулся с проблемой "И все WHERE которые они изобретают(сейчас, а не ранее), становятся фуфлом.", я бы так и написал что это я, а не валил бы на когото. И первоначальный ответ - зачем??? Не умеешь запросы писать - зачем тогда с БД работать? Ответ. Если бы не умел писать запросы, то не задумывался бы над более сложной вещью. Как приблизится к коммерческим продуктам например. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2003, 13:01 |
|
||
|
Посоветуйте как сделать...
|
|||
|---|---|---|---|
|
#18+
А я и не спорю с человеком, который тянет на клиента 1 000 000 записей -- Tygra's -- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2003, 13:19 |
|
||
|
Посоветуйте как сделать...
|
|||
|---|---|---|---|
|
#18+
> Kidd EM кусочками тянет, потому что тянет серверным курсором. На дельфовых ADO-компонентах тоже самое можно сделать. Но , так как тебе нужен DBGrid, то не получится, ибо DBGrid не может работать с серверными курсорами. Отсюда видиться несколько путей: 1. Отказаться от DBGrid и использовать какой-нибудь ActiveX-грид, коих в виндах установлено обычно как грязи. 2. Использовать мудрую систему фильтров, добиваясь минимума выборок, как говаривал уже tygra. 3. Написать своего наследника TDataSet, который будет работать через ADO с серверным курсором, но чтобы понимался гридом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2003, 13:19 |
|
||
|
Посоветуйте как сделать...
|
|||
|---|---|---|---|
|
#18+
Эти вопросы возникают с завидной регулярностью, примерно раз в неделю: "как мне получить быстрее на клиента мои 20 млн. записей" QA/EM работают быстрее потому, что: 1) работают с сервером напрямую, через OLEDB, с самым быстрым интерфейсом 2) не используют никаких DBAware-компонентов, интерфейсов и пр. К тому же написаны на C/C++ и наверняка используют всякие undocumented штучки. И кстати, ни на какие порции, выходной набор, по-моему, они не делят. Не для этого предназначены. Если сильно хочется, используйте серверные курсоры в ADO. Однако почему вам нужны все ваши миллионы записей, вы так толком и не обьяснили. Судя по всему, потому, что так вам проще. Скорее всего, вы все-таки сами придете к тому, к чему вас так эмоционально толкает Тигра. Nobody faults but mine... (LZ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2003, 13:25 |
|
||
|
Посоветуйте как сделать...
|
|||
|---|---|---|---|
|
#18+
Выражаю благодарность людям которые отвечают не по принципу "сам дурак", а достаточно аргументированно, чтобы можно представить начальству, чтобы оно поняло что это сложно реализовать за определенный промежуток времени и вообще этим нерентабельно заниматься. для Tygra Мне действительно сложно пока беседовать в фирме где я работаю, т.к. нет достаточного веса. Но это не значит, что занимаясь N года адм. сервера (ранее) я не рублю в where, передаче параметров, работе с Xp и др. прибамбасами SQL (и сервера в частности). И в работе в к.с. системе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2003, 13:52 |
|
||
|
Посоветуйте как сделать...
|
|||
|---|---|---|---|
|
#18+
2 Kidd Тогда все же почему так делаете? -- Tygra's -- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2003, 15:07 |
|
||
|
Посоветуйте как сделать...
|
|||
|---|---|---|---|
|
#18+
Я не делаю, а исследую задачу с возможностью реализации и желанием отчитаться перед начальством. Потому как оное, прослышав, что у заказчика планируется оптоволокно, желает, чтобы продукты производимые у исполнителя по характеристикам максимально приближались к коммерческим продуктам мировых производителей. Начальство коммунистической закалки,заказчик - так же госконторы, объяснить что то сложно. И тем более с оптоволокном я никогда не работал, пока к сожалению, посему весьма сложно прочувствовать ситуацию и объяснить начальству и заказчику чтото загибая пальцы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2003, 15:34 |
|
||
|
Посоветуйте как сделать...
|
|||
|---|---|---|---|
|
#18+
Я так и не пойму, как 1 000 000 записей на клиента сочетается с автор писал:чтобы продукты производимые у исполнителя по характеристикам максимально приближались к коммерческим продуктам мировых производителей. И к чему тут это автор писал:Начальство коммунистической закалки,заказчик - так же госконторы, объяснить что то сложно. И тем более с оптоволокном я никогда не работал, пока к сожалению, посему весьма сложно прочувствовать ситуацию и объяснить начальству и заказчику чтото загибая пальцы. -- Tygra's -- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2003, 15:39 |
|
||
|
Посоветуйте как сделать...
|
|||
|---|---|---|---|
|
#18+
Я же не стараюсь специально поддеть - я пытаюсь понять, зачем так делать? -- Tygra's -- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2003, 15:40 |
|
||
|
Посоветуйте как сделать...
|
|||
|---|---|---|---|
|
#18+
Первой мыслью было - опять какому-то умалишенному понадобился грид в лимон записей. Но в постинге [392056] , было высказано вполне разумное объяснение стремления к этому идеалу :). Что нужно говорить начальству/заказчику. Это можно сделать, но Это бесполезно, так как такой объем никто не сможет просмотреть. Да, конечно, юзер должен как-то фильтровать информацию, но лучше, что бы он накладыал фильтр ДО того, как она пришла. Мы ведь можем определить разумные критерии отбора, и тут Ваш опыт незаменим :) Понимаете ли, каждый юзер должен видеть только то, что ему разрешено видеть. Сейчас Вы доверяете всем. А завтра? У вас динамичная и развивающася компания. То, что вы хотите очень просто реализовать на двух рабочих местах. Но потом могу возникнуть неприятности. Оборудование не сможет справлятся с таким объемом и Вам придется закупать новую технику. = = = А лучше всего, когда тебе доверяют, и знают, что ты им зла не желаешь = = = Оптоволокно все равно не даст больше 100 мбит/c . Ну нету пока такого общедоступного оборудования! И, пока, в локалке, оптика никакого преимущества перед витой парой не имеет. Другое дело - большие расстояния. Но все равно - 100 мбит/c! =========== Писано в Пятницу, ночью ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2003, 00:07 |
|
||
|
Посоветуйте как сделать...
|
|||
|---|---|---|---|
|
#18+
>Оптоволокно все равно не даст больше 100 мбит/c . Ну нету пока такого общедоступного оборудования! Ну, не знаю, как у Вас, а у нас оптоволокно дает больше 100 мбит/с. Мы, наверное, что-то неправильно делаем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2003, 23:46 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=32304514&tid=2116247]: |
0ms |
get settings: |
7ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
44ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
| others: | 226ms |
| total: | 374ms |

| 0 / 0 |
