| Oper01 | 
| Отправлено: 05.03.2004, 00:02 | 
 
 
 | 
  
Станционный диспетчер 
 
Группа: Участник 
Сообщений: 145 
  
  
 | 
 Есть таблица, в которой порядка 50000 записей. В одном поле (формат текстовый) очень много одинаковых строк. Т.е. из 50000 текстовых значений этого поля разных всего лишь штук 10-15. Остальные повторяются. Мне нужно вытащить из этого поля эти разные значения и запихнуть из в ComboBox. 
У меня всё это происходит очень медленно, так как просто делаю SQL запрос с сортировкой по этому полю и обычным перебором от 0 до RecordCount тупо добавляю отличную от предыдущей записи в ComboBox. Есть ли способ всё это дело ускорить ? У меня машинка не медленная, а задумывается секунд на 40-50, что же будет на других то ? Подскажите варианты возможных действий !!!  | 
  | 
| xTrim | 
| Отправлено: 05.03.2004, 06:30 | 
 
 
 | 
 
  
Машинист паровоза 
 
Группа: Участник 
Сообщений: 208 
  
  
 | 
 а если так 
| SQL  |  | select  distinct  exchange from master.dbf  |   
 | 
  | 
| olegenty | 
| Отправлено: 05.03.2004, 09:33 | 
 
 
 | 
  
Ветеран 
 
Группа: Модератор 
Сообщений: 2412 
  
  
 | 
 а я бы вообще декомпозицию сделал на две таблицы, и вынес это поле в справочную таблицу. а вязался по целому значению.
 | 
  | 
| Gedeon | 
| Отправлено: 05.03.2004, 09:42 | 
 
 
 | 
 
  
Ветеран 
 
Группа: Модератор 
Сообщений: 1742 
  
  
 | 
 Если БД ваша, то вам пожалуй надо почитать книжечку про реляционные базы данных, а конкретно про нормализацию оных. 
Ну и неплохо бы про SQL.
 | 
  | 
| Guest | 
| Отправлено: 05.03.2004, 12:08 | 
 
 
 | 
  
Не зарегистрирован
 
 
 
 
 
  
  
 | 
 Вопрос к xTrim про SQL запрос "select distinct exchange from master.dbf ". Что есть что ?  | 
  | 
| xTrim | 
| Отправлено: 05.03.2004, 13:39 | 
 
 
 | 
 
  
Машинист паровоза 
 
Группа: Участник 
Сообщений: 208 
  
  
 | 
 выбрать неповторяющиеся значения exchange из master.dbf
 | 
  | 
| Oper01 | 
| Отправлено: 07.03.2004, 02:26 | 
 
 
 | 
  
Станционный диспетчер 
 
Группа: Участник 
Сообщений: 145 
  
  
 | 
 А поле по которому выбирать неповторяющиеся значения ? Не понял как этот запрос будет работать, честное слово. Если не сложно поясните мне тупому  .  | 
  | 
| xTrim | 
| Отправлено: 09.03.2004, 08:22 | 
 
 
 | 
 
  
Машинист паровоза 
 
Группа: Участник 
Сообщений: 208 
  
  
 | 
 значения выбираются по полю exchange
 | 
  | 
| Snake | 
| Отправлено: 09.03.2004, 10:53 | 
 
 
 | 
  
Ученик-кочегар 
 
Группа: Участник 
Сообщений: 22 
  
  
 | 
 Еще можно так попробовать:
  
| CODE  |  | SELECT exchange FROM master.dbf GROUP BY exchange |  
 
  
По полю exchange неплохо иметь индекс.  | 
  | 
| Deem | 
| Отправлено: 09.03.2004, 12:19 | 
 
 
 | 
 
  
Мастер участка 
 
Группа: Участник 
Сообщений: 327 
  
  
 | 
 Даешь нормализацию!
 | 
  | 
| olegenty | 
| Отправлено: 09.03.2004, 12:33 | 
 
 
 | 
  
Ветеран 
 
Группа: Модератор 
Сообщений: 2412 
  
  
 | 
 Вот и я то же самое говорю, проблемы нет, а сообщений столько, будто и правда проблема.
 | 
  | 
| Oper01 | 
| Отправлено: 09.03.2004, 23:21 | 
 
 
 | 
  
Станционный диспетчер 
 
Группа: Участник 
Сообщений: 145 
  
  
 | 
 Объясните пожалуйста, что такое нормализация ??? У меня жена, ребёнок маленький, ну не успеваю я все умные книжки читать  ).  | 
  | 
| olegenty | 
| Отправлено: 10.03.2004, 08:12 | 
 
 
 | 
  
Ветеран 
 
Группа: Модератор 
Сообщений: 2412 
  
  
 | 
 сходи на SQL.RU, где-нибудь там стопудово есть. и на citforum.ru можешь метнуться. по вопросам методов проектирования БД. обычно это декомпозиция и ER.
 | 
  | 
| Oper01 | 
| Отправлено: 11.03.2004, 00:22 | 
 
 
 | 
  
Станционный диспетчер 
 
Группа: Участник 
Сообщений: 145 
  
  
 | 
 Спасибо!  | 
  | 
| Admin | 
| Отправлено: 17.03.2004, 14:38 | 
 
 
 | 
 
  
Владимир 
 
Группа: Администратор 
Сообщений: 1190 
  
  
 | 
 | QUOTE  |  | Объясните пожалуйста, что такое нормализация  |  
 
  
Конкретно к вашему случаю это означает:
  
Необходимо вашу таблицу разбить на 2:
  
В таблице-справочнике будет список этих 10-15 возможных значений
  
TblSpr 
------- 
ID Name 
1 женат 
2 холостой 
3 разведенный 
4 кастрированный 
....
  
В основной таблице — сами данные 
Num Name IDSpr 
1 Иванов 1 
2 Петров 3 
3 Сидоров 2 
....
  
И связываете эти таблицы по полям ID — IDSpr 
 | 
  | 
| Oper01 | 
| Отправлено: 18.03.2004, 21:08 | 
 
 
 | 
  
Станционный диспетчер 
 
Группа: Участник 
Сообщений: 145 
  
  
 | 
 Уважаемый, Admin ! 
С меня стакан ! Всё просто и понятно рассказали ! 
Видимо я не одинок с женой и ребёнком  .  | 
  |