Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
07.07.2003, 13:56
|
|||
|---|---|---|---|
|
|||
Master / Detail в Delphi 6 + ADO + MSSQL 2000 |
|||
|
#18+
Я использую Delphi 6 + ADO + MSSQL 2000. Данные редактируются не через элементы управления данными, а преимущественно через кнопки и т.д. FillFactor на индексах 0%. Везде числовой PrimeryKey и он Clustered. Программы - клиенты становятся недоступными для запуска после "прокачки на" SQL больших объемов данных. Я после "прокачек разгоняю базу". Для этого делаю sp_UpdateStats, Затем запускаю клиента с фильтром, после применения которого возвращается минимальный набор данных и через Enterprise manager в ручную рекомпилирую "тормозящие" Views, затем Stored procedures. После всех этих манипуляций проделываю тоже самое на более больших объемах данных, кроме sp_UpdateStats, и все начинает работать. Как можно этого избежать? Подскажите пожалуйста, какие, с точки зрения производительности, методы лучше использовать для отображения Master/Detail? 1)Действительно ли лучше использовать TADODataSet вместо TADOStoredProc? 2)Требуется ли применять Enable/Disable controls для повышения производительности? 3)Самый лучший метод для обновления набора записей в ADO Requery? 4)Как лучше выставить настройки подключения: -ConnectOptions; -CursorLocation; -IsolationLevel; -Attributes; Я пробовал использовать: 1)TADOStoredProc, где Master-Source возвращает поля Fld1, Fld2,..., FldN, a Detail-Source использует параметры @Fld1, @Fld2. Detail-Source.Datasource = MasterSource. 2)TADODataSet, где прописывал хранимую процедуру уже с параметрами в CommandText (с_пр_МояХрПроц 123, 43, 234) и следующий код: If DataSourceApplic.DataSet.Active Then Begin If DataSourceApplicGrp.DataSet Is TADODataSet Then Begin S1 := Format('с_пр_ЗаявкиВыстГрупп %d, %d, %d, %d, %d, %d', [ DataSourceApplic.DataSet.FieldByName('FK_Договоры').AsInteger, 0, DataSourceApplic.DataSet.FieldByName('FK_Заявки').AsInteger, DataSourceApplic.DataSet.FieldByName('FK_Приложения').AsInteger, DataSourceApplic.DataSet.FieldByName('ПГруж').AsInteger, DataSourceApplic.DataSet.FieldByName('FK_Группы').AsInteger ]); If TADODataSet(DataSourceApplicGrp.DataSet).CommandText<>S1 Then Begin DataSourceApplicGrp.DataSet.DisableControls; DataSourceApplicGrp.DataSet.Close; TADODataSet(DataSourceApplicGrp.DataSet).CommandText := S1; DataSourceApplicGrp.DataSet.Open; DataSourceApplicGrp.DataSet.EnableControls; End; End ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=58&mobile=1&tid=2117777]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
39ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
24ms |
get tp. blocked users: |
2ms |
| others: | 263ms |
| total: | 375ms |

| 0 / 0 |
