|
как быстрее будет работать запрос?
|
|||
---|---|---|---|
#18+
При разработке клиентского приложения с помощью Visual FoxPro мы можем использовать одну из двух технологий: Удаленные представление (Remote views); Сквозной запрос (SQL pass-through). В каком случае программа будет работать быстрее? У меня где-то 60 000 записей ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2009, 10:37 |
|
как быстрее будет работать запрос?
|
|||
---|---|---|---|
#18+
http://fox.wikis.com/wc.dll?Wiki~CursorAdapterOrNot~VFP здесь имеется табличка, но рез-ты для опред. условий и .... для Вашего запроса и задачи они могут быть, а скорее все и неверны. пробуйте самостоятельно выполнить тесты - это не сложно. объясните вначале: 1. цель получения данной инф-и на клиенте (зачем на клиенте все 60т.записей?). 2. что далее будет выполняться с данными? 3. будут ли изменяться данные и нужно ли будет сохранять изменения на сервере? 4. почему необходимо учитывать скорость выполнения и получения данных на клиенте? (просто хочется оптимально разработать или это определенное требование заказчика, постановщика ...) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2009, 10:49 |
|
как быстрее будет работать запрос?
|
|||
---|---|---|---|
#18+
А почему только Удаленные представление (Remote views); Сквозной запрос (SQL pass-through). Если есть возможность - используйте Курсор адаптеры насчет сравнеия RW и SQL - всё зависит от того какие это запросы если выбирать select * from table или если использовать параметризированные т.е. запрос вида select * from table where field=?param - скорость будет практически одинаковой если RW использовать параметры select * from table where field=?param а для SQLEXEC клеить строку SQLEXEC(sCon,'select * from table where field='+значение_выбора) то SQLEXEC в большинстве случаев будет быстрее НО ! Всё очень зависит от вида запроса , сервера , используемого драйвера ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2009, 11:13 |
|
как быстрее будет работать запрос?
|
|||
---|---|---|---|
#18+
прошелмимо, 1 надо сразу записей-3000,а к ним цепляется ещё обязательно 15000 и ещё 15000 2 с данными выполняется: insert, update, delete ,ну и отчёты 3 да изменяться и сохранять надо 4 скорость нужна, так как одновременно обращается к задаче около 30 пользователей ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2009, 11:46 |
|
как быстрее будет работать запрос?
|
|||
---|---|---|---|
#18+
авторнадо сразу записей-3000,а к ним цепляется ещё обязательно 15000 и ещё 15000 переводите, на пальцах авторскорость нужна, так как одновременно обращается к задаче около 30 пользователей у Вас файл-сервер или клиент-сервер, где лежит БД? если сервер БД, то сразу укажите какой автор 3 да изменяться и сохранять надо вот это уже интереснее, при использовании авторСквозной запрос (SQL pass-through). Вы получите трудозатраты и ошибки, при использовании КАД больше шансов избежать ошибок и меньше трудозатрат. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2009, 11:58 |
|
как быстрее будет работать запрос?
|
|||
---|---|---|---|
#18+
прошелмимопри использовании авторСквозной запрос (SQL pass-through). Вы получите трудозатраты и ошибки, при использовании КАД больше шансов избежать ошибок и меньше трудозатрат. Используйте хранимые процедуры сервера БД и тогда Вам будет по "барабану" технология доступа к данным будь то CA или SPT. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2009, 12:31 |
|
как быстрее будет работать запрос?
|
|||
---|---|---|---|
#18+
авторИспользуйте хранимые процедуры сервера БД пейте дети молоко, будете здоровы .... а потроганные данные по мановению волшебной палочки улетят назад ... + автор топика не расскрыл все тайны бытия. автортак как одновременно обращается к задаче около 30 пользователей оч.режет глаз ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2009, 12:36 |
|
как быстрее будет работать запрос?
|
|||
---|---|---|---|
#18+
авторВам будет по "барабану угу, а теперь объясните как без танцев и параметра сунуть назад наименование кор-та: Иван о'Конюхин гы, - мне не нужно - я знаю 35-ю способами, картошка фри, пай ... + как убрать время из даты + как обновить курсор актуальными данными ... + ......... а так по все по ..., мы ж не ищем легких путей ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2009, 12:43 |
|
как быстрее будет работать запрос?
|
|||
---|---|---|---|
#18+
PaulWistИспользуйте хранимые процедуры сервера БД и тогда Вам будет по "барабану" технология доступа к данным будь то CA или SPT. Вот тут не соглашусь - при использовании ХП - СА особенно удобен.А если это еще и обёрнуто в свои классы - просто песня . ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2009, 12:44 |
|
как быстрее будет работать запрос?
|
|||
---|---|---|---|
#18+
Код: plaintext
так так и делаем, особенно когда динамика, ну а толку, если не учитывать время затраченное на отбор какая разница нужно тянуть 60т записей на клиента ..., какая разница кто и что их отобрало? главный вопрос: зачем их на клиента тащить? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2009, 12:57 |
|
как быстрее будет работать запрос?
|
|||
---|---|---|---|
#18+
-=AlexiS=-PaulWistИспользуйте хранимые процедуры сервера БД и тогда Вам будет по "барабану" технология доступа к данным будь то CA или SPT. Вот тут не соглашусь - при использовании ХП - СА особенно удобен.А если это еще и обёрнуто в свои классы - просто песня . Э-э-э, не понял с чем несогласие-то? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2009, 14:39 |
|
как быстрее будет работать запрос?
|
|||
---|---|---|---|
#18+
авторЭ-э-э, не понял с чем несогласие-то? обернули запрос в ХП, выполнили просто без ХП, существенная разница? нам нужно узнать у вопрошавшего, зачем ему отбор из 60 т. записей нужен. возможно он считать что-то хочет, тогда возможно и подскажем атору, что посчитать можно на сервере ... мы не знаем сейчас есть ли вообще этот сервер, возможно там файл-сервер. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2009, 14:45 |
|
как быстрее будет работать запрос?
|
|||
---|---|---|---|
#18+
на SQL server лежит база. По ODBC пользователи коннэктются с сервером и в основной форме в Data Environment вытягиваю все views Надо пользователям сразу видеть в Gride столько записей А пользователей становится всё больше и больше, программа работает всё медленее ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2009, 14:53 |
|
как быстрее будет работать запрос?
|
|||
---|---|---|---|
#18+
прошелмимо угу, а теперь объясните как без танцев и параметра сунуть назад наименование кор-та: Иван о'Конюхин Вообще не понял вопроса, можно его сформулировать как для "дураков". прошелмимо + как убрать время из даты + ......... а так по все по ..., мы ж не ищем легких путей Это тоже не понял, какое время в дате, с датой модно оперировать кратно 1 дню. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2009, 14:59 |
|
как быстрее будет работать запрос?
|
|||
---|---|---|---|
#18+
Татьяна_sinна SQL server лежит база. По ODBC пользователи коннэктются с сервером и в основной форме в Data Environment вытягиваю все views Надо пользователям сразу видеть в Gride столько записей60 тыс.? НЕ ВЕРЮ! (С) А пользователей становится всё больше и больше, программа работает всё медленееПосчитайте и сравните: 100 х кол.пользователей и 60 000 х кол.пользователей. Разница есть? И что Вы хотите при такой разнице? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2009, 15:04 |
|
как быстрее будет работать запрос?
|
|||
---|---|---|---|
#18+
авторЭто тоже не понял почините пока понималку авторНадо пользователям сразу видеть в Gride столько записей не факт, что эти записи нужно видеть человек не в состоянии видеть и анализировать 60 т. записей + запрос, план анализировали? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2009, 15:04 |
|
как быстрее будет работать запрос?
|
|||
---|---|---|---|
#18+
жду от автора топика еще раз ответ на вопрос : зачем 60т. записей тянуть на клиента? чтобы показать просто в гриде - это неправильно, редактировать одновременно 60т. также невозможно. в случае если автор считает свои действия обоснованными прошу объяснить, что его волнует больше: -на выделенный сервер с сервером БД, на котором лежит БД -время доставки данных на клиента. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2009, 15:12 |
|
как быстрее будет работать запрос?
|
|||
---|---|---|---|
#18+
в Gride всего 3000 записей договоров (их надо видеть), а поставок по всем этим договорам где-то 15 000 и оплат примерно столько И все они вытягиваются во views в форме. Да ещё справочник куча всяких дополнительных views. Форма открывается медленно Вот и решила что-либо переделать надо ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2009, 15:13 |
|
как быстрее будет работать запрос?
|
|||
---|---|---|---|
#18+
очепятался что волнует? - нагрузка на сервер? сервер не справляется? - или время доставки на клиента нагрузку на сервер Вы не снимете применив любой из способов запроса данных, котор. Вы перечислили вначале топика ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2009, 15:14 |
|
как быстрее будет работать запрос?
|
|||
---|---|---|---|
#18+
ВРЕМЯ ДОСТАВКИ ДАННЫХ ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2009, 15:16 |
|
как быстрее будет работать запрос?
|
|||
---|---|---|---|
#18+
Татьяна_sinв Gride всего 3000 записей договоров (их надо видеть), Все? Все равно не верю. Наверняка в каждый конкретный момент времени нужны небольшое количество договоров, удовлетворяющих определенным условиям. а поставок по всем этим договорам где-то 15 000 и оплат примерно столько И все они вытягиваются во views в форме. Да ещё справочник куча всяких дополнительных views. Ну и зачем и их сразу и полностью тащить? Форма открывается медленноРазумеется. Сначала тащим все, что ни попадя, и навряд ли нужное, а потом удивляемся тормозам. Вот и решила что-либо переделать надоВот это правильно! :) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2009, 15:18 |
|
как быстрее будет работать запрос?
|
|||
---|---|---|---|
#18+
авторв Gride всего 3000 записей договоров (их надо видеть) снова вопрос: сразу, одновременно, или по какому-то условию? о требованию? с даты по дату .... авторпо всем этим договорам где-то 15 000 Вы сразу вытаскиваете по всем договорам всю детализацию? или все же конкретный договор - только его детализация? для чего тянете 15 000 строк детализации? просто смотреть? авторДа ещё справочник куча всяких дополнительных views справочники тянем по требованию, по надобности ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2009, 15:18 |
|
как быстрее будет работать запрос?
|
|||
---|---|---|---|
#18+
авторВРЕМЯ ДОСТАВКИ ДАННЫХ это время не зависит от того, что к серверу стучатся еще 30 человек, другое дело - это нагрузка на сервер, то, что сервер загружен и медленно осуществляет запросы. все смешалось у Вас немного. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2009, 15:20 |
|
как быстрее будет работать запрос?
|
|||
---|---|---|---|
#18+
условие одно- сначала года,и их уже на сегодня 3000 а вот не тащить сразу всю детализацию-эта идея А как её лучше осуществить? Правда и сервер у нас с ОЗУ-512 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2009, 15:24 |
|
как быстрее будет работать запрос?
|
|||
---|---|---|---|
#18+
меняйте стратегию. стратегия должна быть такой: тянем максимально меньшее, минимальнейшее кол-во данных на клиента если нужно перелопатить что-то считать - считаем на сервере тянем данные только по требованию, заранее ничего не тянем, особенно огромное кол-во данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2009, 15:25 |
|
как быстрее будет работать запрос?
|
|||
---|---|---|---|
#18+
Татьяна_sinв Gride всего 3000 записей договоров (их надо видеть), а поставок по всем этим договорам где-то 15 000 и оплат примерно столько И все они вытягиваются во views в форме. Да ещё справочник куча всяких дополнительных views. Форма открывается медленно Вот и решила что-либо переделать надо Я не знаю, как именно вы организовали процесс загрузки данных в форме, но обычно данные загружаются "по требованию". Например, классическая форма документа, имеющего шапку и строки. На форме 2 Grid. Первый отображает шапки, второй - строки. Строки шапок надо загрузить сразу при открытии формы. Насклько я понимаю, это ваши 3 тысячи договоров. А вот строки надо загружать не все. А только те, которые соответствуют ОДНОМУ (текущему) документу. Это можно реализовать при помощи параметризированного Remote View. Перемещаетесь на другую строку договора - новый запрос к серверу за новой порцией строк. Для Remote View - это просто изменение значения параметра и Requery(). Поскольку строк у одного договора обычно не много, то такой запрос выполняется очень быстро. Незаметно для пользователя. Собственно, технология доступа особой роли не играет. Разница, конечно, будет. Но не настолько значительная, чтобы было о чем говорить. Принципиально важным является объем информации (в байтах, а вовсе не в строках), который вы хотите одномоментно скачать с сервера. Поэтому, если вы хотите ускорить время открытия формы вам следует озаботится сокращением объема одномоментно скачиваемой информации. Т.е. изменить сам подход (иделогию) к работе с данными. Один из вариантов решения я уже описал - скачивать информацию "по требованию". В описанной схеме - это наиболее простое решение. Но есть и другие способы решения. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2009, 15:26 |
|
как быстрее будет работать запрос?
|
|||
---|---|---|---|
#18+
авторусловие одно- сначала года,и их уже на сегодня 3000 кто сделал такую постановку? а на форме не может быть контрола - формирователя условия запроса? с 1.апр.2009 по 3.апр.2009 ? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2009, 15:26 |
|
как быстрее будет работать запрос?
|
|||
---|---|---|---|
#18+
спасибо за советы-уже появились мысли А чем лучше тянуть? или не имеет значения ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2009, 15:30 |
|
как быстрее будет работать запрос?
|
|||
---|---|---|---|
#18+
авторА как её лучше осуществить? так, вначале пробуйте причесывать то, что есть: пишу запросы и обманываю юзверов так, чтобы инф-и с сервера на локал поступало всегда мало. затем нужно почитать книжки ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2009, 15:31 |
|
как быстрее будет работать запрос?
|
|||
---|---|---|---|
#18+
авторА чем лучше тянуть? или не имеет значения если желаете себя разгрузить, т.е. писать минимальное кол-во кода, то для взаим-я с сервером оч. выгодно использовать курсорадаптер. пример положил, там срипты на создание табличек, поиграйтесь. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2009, 15:32 |
|
как быстрее будет работать запрос?
|
|||
---|---|---|---|
#18+
Спасибо Может ещё подскажите какие-нибудь ТОЛКОВЫЕ книжки ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2009, 15:42 |
|
как быстрее будет работать запрос?
|
|||
---|---|---|---|
#18+
пока любую, в названии которой есть слова "Разработка клиент-серверных приложений ..." если найдете, то "Разработка клиент-серверных приложений с исп-ем классов КАД в Фокспро", шучу попробуйте поискать материал по теме в интернете. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2009, 15:48 |
|
как быстрее будет работать запрос?
|
|||
---|---|---|---|
#18+
http://akop.ru/personal/1856 авторЗа шестизначную сумму был приобретен крутой Sun-овский сервер, и комплект средств разработки Oracle. Задача была довольно быстро переписана на Oracle, и запущена... После чего выяснилось, что она не тянет больше 5 пользователей, да и тех с трудом. Длительные разбирательства показали, что новая программа, воспроизводящая старую, "клипперную" идеологию, начинала с того, что открывала все ей нужные таблицы с помощью приведенных выше запросов. так, что проблема не в ОЗУ сервера, к примеру она супер-пупер контора сейчас прикупила машинку, для питания которой нет мощностей на Тверской ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2009, 15:52 |
|
как быстрее будет работать запрос?
|
|||
---|---|---|---|
#18+
Татьяна_sin, Можно я маленько своим поделюсь. Вот у меня журнал проводок каждый месяц добивается 50000 проводок. При этом, ширина записи получается достаточно большой. То-есть, вместе с проводкой может одновременно быть подгружено 8 аналитик (80 байт наименование и 4 байта идентификатор). Замечено, что притягивать на локаль журнал проводок по-запросу получается невыгодно. Если пользователь не заводит данные, а что-то ищет или обсчитывает, фильтры меняются очень активно и задержка даже в 2 секунды начинает пользователей раздражать. Поэтому, было принято решение, что дешевле притянуть сразу весь журнал за период, потратить время на его индексацию, зато потом очень быстро его фильтровать и сортировать. И действительно, пользователи редко переключают период. Бывает, запрос к журналу идет один раз, а потом в течение часа его ковыряют. Единственная фенька всего этого процесса заключается в том, что журнал проводок тянет на локаль только коды аналитического учета. А вот справочники аналитического учета подгружаются отдельно и только по необходимости. Покажу на примере, в чем разница. Предположим, у нас есть счет 60, который в качестве аналитики содержит контрагента. Если мы притащим сюда 50000 записей, в каждой из которых будет код и наименование контрагента, то получится 80 (байт/имя) * 50000 (записей) + 4 (байта на код) * 50000 (записей) = 4200000 байт. А если учесть, что одновременно мы работаем максимум с с сотней контрагентов, то притянув справочник отдельно получим (80 + 4) (байт на контрагента) * 100 (контрагентов) + 4 (байта на код) * 50000 (записей) = 208400 байт. Правда разительная разница? А если пользователю не нужен справочник контрагентов (пользователь не работает с 60-ми счетами), то пользователь может просто отключить показ справочника и тогда он не будет загружен. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2009, 05:57 |
|
как быстрее будет работать запрос?
|
|||
---|---|---|---|
#18+
Kruchinin PahanПравда разительная разница? А если пользователю не нужен справочник контрагентов (пользователь не работает с 60-ми счетами), то пользователь может просто отключить показ справочника и тогда он не будет загружен. А если учесть что один бухгалтер редко работает со всеми счетами предприятия (если только это не фирмочка с одним бухом и двумя менеджерами) а только а пределах своей компетенции, то тянуть весь журнал за период несколько расточительно ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2009, 09:15 |
|
как быстрее будет работать запрос?
|
|||
---|---|---|---|
#18+
BurnKruchinin PahanПравда разительная разница? А если пользователю не нужен справочник контрагентов (пользователь не работает с 60-ми счетами), то пользователь может просто отключить показ справочника и тогда он не будет загружен. А если учесть что один бухгалтер редко работает со всеми счетами предприятия (если только это не фирмочка с одним бухом и двумя менеджерами) а только а пределах своей компетенции, то тянуть весь журнал за период несколько расточительно Никогда не угадаешь зарание, что необходимо, например, бухгалтеру материальной группы. Это счета учета материалов - 10, 15, счета передачи в производство - 20, 23, 25. Или в непромсферу - 26, 29, 44. Так же это может быть учет задолженности контрагентов - 60, 76. А еще и налоги 19, 68, 76. А еще и выручка/прибыль - 90, 91. А еще мы можем что-нибудь построить из наших материалов - 08. А можем и продать - 41. А еще можем часть материалов учитывать забалансом. А еще нам интересно, как мы платили: 50, 51, 52, 55 (во изврат!). А иногда и взаимозачеты 62. А какая-то сволочь гайку купила за свои бабки - 71. Нет, существуют и другие режимы, которые позволяют выйти на префильтрованный журнал проводок. Например из оборотных ведомостей, анализов, карточек. Но если бухгалтер говорит, что ему нужен журнал проводок, значит, ему нужен именно журнал проводок, а что он с ним будет дальше делать, это уже его дело. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2009, 09:44 |
|
как быстрее будет работать запрос?
|
|||
---|---|---|---|
#18+
BurnKruchinin PahanПравда разительная разница? А если пользователю не нужен справочник контрагентов (пользователь не работает с 60-ми счетами), то пользователь может просто отключить показ справочника и тогда он не будет загружен. А если учесть что один бухгалтер редко работает со всеми счетами предприятия (если только это не фирмочка с одним бухом и двумя менеджерами) а только а пределах своей компетенции, то тянуть весь журнал за период несколько расточительно Кроме простых бухгалтеров есть еще и аналитики, аудиторы, гл. бухгалтер и пр. Им, как правило, подавай все счета.. Я, например, обороты считаю на сервере. А вот журнал подгружается в момент когда происходит переходит с последнего уровня синтетики (или аналитики если она есть) до проводок. В этот момент и читаются проводки (журнал) по выбранному основному счету. Открытие журнала тоже происходит только по основному счету. Активно используется при этом возможности самого VFP для кеширования проводок: Если проводки уже были считаны ранее, то информация об этом хранится в специальной таблице и второй раз они с сервера не тянутся. Вообщем, все зависит от программиста. Такой инструмент как VFP позволяет распределять усилия про обработке данных между сервером и клиентом. С уважением, Алексей. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2009, 13:20 |
|
как быстрее будет работать запрос?
|
|||
---|---|---|---|
#18+
2 Татьяна_sin как у Вас успехи? будем погружаться в тему курсорадаптеров? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2009, 14:49 |
|
как быстрее будет работать запрос?
|
|||
---|---|---|---|
#18+
пример каскадов КАД + бекап БД для MS SQL 2005 1. восстановить БД из бекапа test.bakup 2. настроить строку соединения в startapp.prg поиграйтесь, попытайтесь понять ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2009, 17:25 |
|
как быстрее будет работать запрос?
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2009, 17:25 |
|
|
start [/forum/topic.php?all=1&fid=41&tid=1586552]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
41ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
76ms |
get tp. blocked users: |
1ms |
others: | 333ms |
total: | 497ms |
0 / 0 |