посоветуйте какой формат поля лучше для индексирования

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
АндрейБ
Бывалый
Бывалый
 
Сообщения: 276
Зарегистрирован: 18.12.2004 (Сб) 17:00
Откуда: Санкт-Петербург

посоветуйте какой формат поля лучше для индексирования

Сообщение АндрейБ » 23.12.2006 (Сб) 11:14

У меня таблица с большим количеством данныx, порядка 4,000,000 записей. Первое поле содержит цифры от 1 до 999. И по нему я хочу сделать индексирования (вобще индексирования идет по 2 полям, но второе поле только может быть тексовым), а вот первое можно сделать либо числовым либо текстовым - может кто уже задавался таким вопросом, по какому формату быстрее идет поиск при индексировании?
Кто ищет, тот всегда найдет ...

VVitafresh
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1641
Зарегистрирован: 12.05.2005 (Чт) 14:44
Откуда: Херсон, UA

Сообщение VVitafresh » 23.12.2006 (Сб) 11:19

ИМХО, формат поля большого значения не имеет (тем более, что у тебя индекс я так понял составной). Намного важнее чтобы условия, по которым ты отбираешь, "ложились на индекс".
Никакую проблему невозможно решить на том же уровне, на каком она возникла. Нужно стать выше этой проблемы, поднявшись на следующий уровень.

АндрейБ
Бывалый
Бывалый
 
Сообщения: 276
Зарегистрирован: 18.12.2004 (Сб) 17:00
Откуда: Санкт-Петербург

Сообщение АндрейБ » 23.12.2006 (Сб) 13:50

понятно, все работает по уму, только у меня база Access - поэтому все равно слегка тормозит.
Кто ищет, тот всегда найдет ...

АндрейБ
Бывалый
Бывалый
 
Сообщения: 276
Зарегистрирован: 18.12.2004 (Сб) 17:00
Откуда: Санкт-Петербург

Сообщение АндрейБ » 23.12.2006 (Сб) 13:51

А какие форматы баз данных (не mdb - не акцес) можно обрабатывать на VB и есть которые значительно быстрее, что бы время поиска сократить?
Кто ищет, тот всегда найдет ...

VVitafresh
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1641
Зарегистрирован: 12.05.2005 (Чт) 14:44
Откуда: Херсон, UA

Сообщение VVitafresh » 23.12.2006 (Сб) 19:42

Если Майкрософтовские, то MS SQL Server (платный), MSDE (бесплатно). При достаточном объеме оперативки на тех же таблицах будет заметно быстрее. Но это не "формат баз данных", а отдельная СУБД, требующая установки.
Никакую проблему невозможно решить на том же уровне, на каком она возникла. Нужно стать выше этой проблемы, поднявшись на следующий уровень.

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 23.12.2006 (Сб) 20:08

АндрейБ писал(а):понятно, все работает по уму, только у меня база Access - поэтому все равно слегка тормозит.


Access-у твои 4 млн записей - пустячек. Просто не тескай без крайней необходимости сотни тысяч и миллионы записей - ограничивай кол-во записей в выборке и все будет быстро.

А вот с точки зрения надежности, если база постоянно пополняется - то я бы поостерегся и предпочел бы использование того-же MSDE на выделенном сервере...
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 23.12.2006 (Сб) 20:15

VVitafresh писал(а):Если Майкрософтовские, то MS SQL Server (платный), MSDE (бесплатно). При достаточном объеме оперативки на тех же таблицах будет заметно быстрее. Но это не "формат баз данных", а отдельная СУБД, требующая установки.


Вообще-то если все это живет на одной машине с программой, то разницы практически не будет. Если на разных, то для примитивных запросов тоже особой разницы не увидишь.

SQL Server не панацея в плане повышения скорости работы с базой - более решающим тут является ее правильная разработка.
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

VVitafresh
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1641
Зарегистрирован: 12.05.2005 (Чт) 14:44
Откуда: Херсон, UA

Сообщение VVitafresh » 23.12.2006 (Сб) 20:36

Andrey Fedorov, я согласен с тем, что разница будет наиболее заметна, если установлен SQL на отдельной машине с быстрым HDD и большим объемом оперативки под сервер.
Если устанавливать все на одну и ту же машину, то разницы действительно почти не заметишь при однопользователськой работе (а если оперативки мало, то может стать даже хуже). Но если будет несколько подлючений, то все же MS SQL (или MSDE)предпочтительней.

А правильная стурктура БД и удачный выбор индексов -- это да, наиболее важный момент.
Никакую проблему невозможно решить на том же уровне, на каком она возникла. Нужно стать выше этой проблемы, поднявшись на следующий уровень.

blinow
Обычный пользователь
Обычный пользователь
 
Сообщения: 53
Зарегистрирован: 27.06.2005 (Пн) 3:13

Сообщение blinow » 24.12.2006 (Вс) 5:21

Эксперимент показал, что разницы (на современных компьютерах) на глаз нет. Но проц работает только с числами. И как с сортировкой, очень неприятно выглядит такой порядок псевдочисел (1,10,11,12,...2,20,21 и тд), тогда нужно изобретать ('001','002','003',...) или и того хуже (' 1',' 2',...' 21',' 22' один раз столкнулся с таким кошмаром, думал крыша поехала, числа отображаются нормально, тип поля не смотрел, нажимаю Ctrl+F найти 5 и выдается сообщение ек, как ек когда глазами вижу, что есть и только потом увидав тип поля понял тама не 5 а ' 5') и неуверенность при запросе Поле1>='1' and Поле1<='25'
И в приложении если выполняются какие-то действия с такими полями, то явно будет медленне с текстом из-за лишних преобразований, да и запросы с агрегатными функциями типа max работают медленнее.

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 25.12.2006 (Пн) 8:55

blinow писал(а):И как с сортировкой, очень неприятно выглядит такой порядок псевдочисел (1,10,11,12,...2,20,21 и тд), тогда нужно изобретать ('001','002','003',...)


А ты того - просто числовым это поле сделать не пробовал? Ведь зачем-то придумали форматы полей отличные от строк... Хотя может это просто происки буржуев... :lol:
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

АндрейБ
Бывалый
Бывалый
 
Сообщения: 276
Зарегистрирован: 18.12.2004 (Сб) 17:00
Откуда: Санкт-Петербург

Сообщение АндрейБ » 28.12.2006 (Чт) 14:04

Т.е. из выше сказаного можно сделать вывод, что если даже если уставновить MSDE - то реально ускориться не получиться?
Кто ищет, тот всегда найдет ...

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 28.12.2006 (Чт) 14:48

АндрейБ писал(а):Т.е. из выше сказаного можно сделать вывод, что если даже если уставновить MSDE - то реально ускориться не получиться?


В любом случае - надо приводить в порядок базу.
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

АндрейБ
Бывалый
Бывалый
 
Сообщения: 276
Зарегистрирован: 18.12.2004 (Сб) 17:00
Откуда: Санкт-Петербург

Сообщение АндрейБ » 08.01.2007 (Пн) 11:09

База то в порядке, уже не один год отклаживал структуру.
В продолжение разговора хочу спросить, я пробывал загружать таблицу (с 4,000,000 записей) в рекордсет при открытие формы и кончено же рекордсет описывал на всю форму. Но почему то не получил ускориние работы - получилось безразницы открывать каждый раз таблицу при выполнение процедуры или один раз ее открыть и с нею работать.
Может кто предложит (может кто-нибудь уже сталкивался с такой задачей) какие-то варианты по ускорению работы с такой большой таблицей?
Кто ищет, тот всегда найдет ...

VVitafresh
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1641
Зарегистрирован: 12.05.2005 (Чт) 14:44
Откуда: Херсон, UA

Сообщение VVitafresh » 08.01.2007 (Пн) 14:40

АндрейБ писал(а):я пробывал загружать таблицу (с 4,000,000 записей) в рекордсет при открытие формы и кончено же рекордсет описывал на всю форму.

Я чё-то не понял сколько записей в твоем рекордсете? Все 4,000,000 :?:
Никакую проблему невозможно решить на том же уровне, на каком она возникла. Нужно стать выше этой проблемы, поднявшись на следующий уровень.

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 09.01.2007 (Вт) 8:41

VVitafresh писал(а):
АндрейБ писал(а):я пробывал загружать таблицу (с 4,000,000 записей) в рекордсет при открытие формы и кончено же рекордсет описывал на всю форму.

Я чё-то не понял сколько записей в твоем рекордсете? Все 4,000,000 :?:


Может юзеры впадают в экстаз, когда листают Grid с таким количеством записей?
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 94

    TopList