Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.02.20;
Скачать: [xml.tar.bz2];

Вниз

Прошу помочь...   Найти похожие ветки 

 
Vint   (2003-01-30 16:00) [0]

Уважаемые мастера,
месяц назад был вопрос о сортировки по колонке БД и был дан ответ использовать следующую связку Table > DataSetProvider > ClientDataSet > DataSource > DBGrid и
procedure TForm1.DBGrid1TitleClick(Column: TColumn);
begin
ClientDataSet1.IndexFieldNames := Column.Field.FieldName;
end;


Теперь мой вопрос: как это работает, почему SQL - тормозит, а тут все просто летает! Почему я не могу сделать то же самое с одним только Table (я же не могу ради сортировки все поля моей БД проиндексировать!)

уж очень хочется разобраться, ну а если че не так поправьте, да и на ответ все же надеюсь :)


 
Vint   (2003-01-31 09:15) [1]

я на связи
... прием :)


 
Lord Warlock   (2003-01-31 09:27) [2]


> (я же не могу ради сортировки все поля моей БД проиндексировать!)


Ну а почему бы и нет.. Это не очень смертельно :)

А ысе летает потому, что DataSetProvider в момент открытия набора данных передает данные с сервера на клиент (в тч индексы),
и далее работа (ClientDataSet1.IndexFieldNames := Column.Field.FieldName;) производится на локальной машине, а не на сервере.

Советую почитать книжки по программированию 3-х звенных приложений.


 
Vint   (2003-01-31 11:16) [3]

>Lord Warlock © (31.01.03 09:27)

Ну а почему бы и нет.. Это не очень смертельно :)
Полей для сортировки много, и я просто боюсь, что пропорционально увеличению количества проиндексированных полей, увеличивается шанс того, что однажды вся БД рухнет!

(в тч индексы)
так индексов то нет! или они создаются автоматически? - не может такого быть! тогда откуда такая скорость?


 
sniknik   (2003-01-31 13:10) [4]

Правильно, много индексов нехорошо. Не только шансы на крах увеличиваются еще и время добавления/изменения записей растет, а нафиг это нужно?
Гдето читал про разумные компромисы, индексы по моему как раз тот случай.

Про ClientDataSet1, насколько понимаю он работает аналогично ADODataSet, если так, то все данные держит в памяти (рекордсет), в памяти и индексирует при отсутствии индекса на поле (в памяти все быстрее).
И не так уж быстро (попробуй выборку на ~1,5 милиона записей) открывается ~13мин перестроение индекса ~5мин (присвоение свойству Sort:= ИмяПоля) а вот повторное или смена порядка (DECS) проходят моментально. Т.е. раз проиндексированое поле остается таким кокоето время (до закрытия рекордсета или еще чего произойдет).



 
Vint   (2003-02-03 10:12) [5]

>sniknik © (31.01.03 13:10)
прочитал только сейчас, спасибо!

P.S. вот если вопрос по коду, типа блин: а как лишние пробелы убрать это дааааа..., а по теории ответить, я смотрю, всем сразу ломы - вот такая закономерность. Обращаться к кому то из профи типа ув. Юрий Зотов ответьте пожалуйста, вроде неудобно :) короче просто даже и не надеялся, что кто то ответит, ан нет нашелся хороший человек :)))
Что я хочу сказать?: давайте помогать друг - другу!!!



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

Форум: "Базы";
Текущий архив: 2003.02.20;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.006 c
14-63841
malish
2003-02-04 20:20
2003.02.20
Drawgrid


3-63527
Виталий
2003-01-30 12:04
2003.02.20
DBGrid - Как програмно перелезть в другое поле (колонку)?


6-63720
really_Deflorator
2002-12-28 23:13
2003.02.20
Поиск сервера в сети


6-63723
Nimda
2002-12-26 07:55
2003.02.20
Картинки по сети.


3-63570
Петрович
2003-01-30 10:20
2003.02.20
Можно ли ускорить Delete





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский