![]() |
|
|
![]()
|
|
| royun |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 22.8.2011 Репутация: нет Всего: нет |
Добрый день.
У меня есть программа, которая передает данные из StringGrida в таблицу SQL Server 2000. Используется ADOConnection, ADODataSet. Для доступа к таблице. Передача данных идет следующим образом:
В свойствах ADODataSet CommandType стоит cmdStoredProc и в CommandText стоит имя хранимой процедуры sp1;1. А в хранимой процедуре команда:
Сейчас в таблице порядка 8 млн. записей. Когда программу запускаешь, то программа подключается к таблице и считывает все 8 млн. записей и потом открывается. Проходит примерно 16 минут. Потребляет оперативной памяти около 1.5 Гб, SQL Server 2000 ограничил 500 Мб. После открытия программы потребление памяти начинает падать. Проблема потребления памяти только на стадии открытия программы. Как быть, посоветуйте пожалуйста. |
||||
|
|||||
| Vas |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 830 Регистрация: 29.6.2005 Где: Stavropol region Репутация: 23 Всего: 28 |
Зачем все выбирать? Вроде же программа передает
Ну, а если прям сильно надо выбирать, то делай условие по которому выбираться записи будут. -------------------- И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин) |
||||
|
|||||
| superVad |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 735 Регистрация: 6.4.2006 Где: Черкассы, Украина Репутация: 3 Всего: 15 |
royun, сомневаюсь, что кому то может понадобится 8 млн. записей на экране.
Устанавливай какие то фильтры по дате. |
|||
|
||||
| royun |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 22.8.2011 Репутация: нет Всего: нет |
Настроил ADOConnection, в ADODataSet в свойствах Connection выбираю ADOConnection. Если я не заполню свойство ADODataSet CommandText, то когда свойство Active ставлю TRUE выходит ошибка "Missing command text property". Поэтому в свойстве CommandType ставлю cmdStoredProc и в CommandText пишу имя хранимой процедуры sp1;1, т.к. хранимые процедуры выполняются быстрее.
Вот и поэтому происходят тормоза в программе. Как это дело обойти можно? |
|||
|
||||
| Vas |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 830 Регистрация: 29.6.2005 Где: Stavropol region Репутация: 23 Всего: 28 |
А собственно зачем при открытии программы компоненту ADODataSet ставить свойство Active=True?
Хочешь чтобы помогли, ответь на вопрос: Зачем тебе все 8млн записей на клиенте???? -------------------- И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин) |
|||
|
||||
| chip_and_dayl |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 603 Регистрация: 22.4.2007 Где: Украина, Киев Репутация: 2 Всего: 9 |
Добавление идет через инсерт ADODataSet!?!
Инсерт лучше делать через запрос INSERT INTO ... тогда чтобы вставить запись не нужно открывать вообще таблицу с 8 миллионами или одной записью Добавлено @ 10:22 То что вы написали в хранимке с надеждой о чуде.... можете убрать вашу хранимку, она явно не для таких целей предназначена (ИМХо) Добавлено @ 10:24 По поводу открытия программы, читайте советы Vas и superVad только индекс по дате добавьте Это сообщение отредактировал(а) chip_and_dayl - 18.1.2012, 10:24 -------------------- Фсё будет хорошо!!! |
|||
|
||||
| royun |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 22.8.2011 Репутация: нет Всего: нет |
Все на само деле оказалось куда проще:
И теперь не тащу на клиента 8 млн. записей. И все записи корректно переносятся в таблицу. Проверил. Не ругайте, только начинаю. Тема закрыта. Это сообщение отредактировал(а) royun - 18.1.2012, 11:20 |
|||
|
||||
| Vas |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 830 Регистрация: 29.6.2005 Где: Stavropol region Репутация: 23 Всего: 28 |
Дык если бы тебя не пытали, зачем тебе 8 млн записей, до сих пор бы тянул Это сообщение отредактировал(а) Vas - 18.1.2012, 14:35 -------------------- И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин) |
|||
|
||||
![]()
|
| Правила форума "Delphi: Базы данных и репортинг" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |