|
|
|
Объект и классификаторы
|
|||
|---|---|---|---|
|
#18+
Нужен совет или хоть указания пути в котором лучше следовать по следующему вопросу. Необходимо создать хранилище в котором будет содержатся набор объектов и классификаций по этим объектам. Проблема заключается в том что выборка будет производится по этим самым классификаторам (которых может быть неопределенное количество, в данном случае предполагается что не больше 50-ти). Данных в самом справочнике на начальном этапе будет где-то пол миллиона записей + 1000 записей в день. Из вариантов которые рассматривали это хранить в каждой записи поле с битовой маской по которой затем можно осуществлять поиск по нужным классификаторам (но в таком случае в плане идет index scan) – возможно ли как то заставить sql делать не полное сканирование индекса а толь частичную выборку? Второй вариант это хранить набор ключей для каждой из записи (по сути все комбинации классификаторов которыми обладает объект), но выходит что записей в таблице будет очень большое (предположительно около миллиарда (как бы много)), насколько продуктивным может быть поиск по такой таблице? Возможно рассмотрение варианты эти неверно выбранный путь и стоит обратить свое внимание в другую сторону? Модератор: Тема перенесена из форума "Microsoft SQL Server". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2010, 17:45 |
|
||
|
Объект и классификаторы
|
|||
|---|---|---|---|
|
#18+
Давайте сначала разберемся с терминологией __вопрос_ Необходимо создать хранилище в котором будет содержатся набор объектов и классификаций по этим объектам.хранилище, в котором содержатся факты и измерения. Предполагаю что под объектами вы называете факты, под классификаторами измерения __вопрос_ (которых может быть неопределенное количество, в данном случае предполагается что не больше 50-ти).Приведите пример неопределенного количества. Попробую заглянуть в хрустальный шар (если ошибусь вы меня поправите) У вас есть некие факты которых (предположительно около миллиарда (как бы много)) У вас есть одно или несколько ( не больше 50-ти ) измерений которых где-то пол миллиона записей + 1000 записей в день. . На измерения накладываем фильтр из неопределенное количество, в данном случае предполагается что не больше 50-ти условий. Ваша задача эффективно соединить отобранные измерения с таблицей фактов, так? Еще лучше если вы накидаете скрипты для создания таблиц с вашими именами, разговор будет более предметный. После уяснения задачи можно будет говорить об индексах и планах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2010, 03:01 |
|
||
|
Объект и классификаторы
|
|||
|---|---|---|---|
|
#18+
по сабжу EAV ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2010, 10:08 |
|
||
|
Объект и классификаторы
|
|||
|---|---|---|---|
|
#18+
> выборка будет производится по этим самым классификаторам (которых может быть неопределенное количество, в > данном случае предполагается что не больше 50-ти). Откройте тайну, что это за пятьдесят классификаторов? Десяток-другой - куда ни шло, а пятьдесят - откуда? Очередной вечный двигатель? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2010, 10:29 |
|
||
|
Объект и классификаторы
|
|||
|---|---|---|---|
|
#18+
guest_20040621> выборка будет производится по этим самым классификаторам (которых может быть неопределенное количество, в > данном случае предполагается что не больше 50-ти). Откройте тайну, что это за пятьдесят классификаторов? Десяток-другой - куда ни шло, а пятьдесят - откуда? Очередной вечный двигатель? да тайны нету. По большему счету это будут товары. У каждого товара есть свои характеристики. У мобильного телефона их одно количенство, у автомобилей их куда большее кол-во. В это как бы и вся беда. Что типы товаров могут быть разные, а их характеристик еще больше. И по большей части из них нужно будет делать все время выборки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2010, 13:52 |
|
||
|
Объект и классификаторы
|
|||
|---|---|---|---|
|
#18+
SERG1257Еще лучше если вы накидаете скрипты для создания таблиц с вашими именами, разговор будет более предметный. После уяснения задачи можно будет говорить об индексах и планах. сори что не отвечал. сейчас постараюсь представить упрощеный вариант ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2010, 14:02 |
|
||
|
Объект и классификаторы
|
|||
|---|---|---|---|
|
#18+
> У каждого товара есть свои характеристики. А классификаторы-то здесь каким боком? Вы, насколько я понимаю, собираетесь классифицировать товары потребительского рынка, это один классификатор. > типы товаров могут быть разные, а их характеристик еще больше Поищите в архиве, обсуждается постоянно. Стандартное решение - традиционная структура данных для известных характеристик (возможно, с типизацией) плюс структура данных для неизвестных на момент проектирования характеристик с тем расчетом, что с течением времени мусорные данные будут мигрировать в регулярные структуры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2010, 14:05 |
|
||
|
Объект и классификаторы
|
|||
|---|---|---|---|
|
#18+
guest_20040621> У каждого товара есть свои характеристики. А классификаторы-то здесь каким боком? Вы, насколько я понимаю, собираетесь классифицировать товары потребительского рынка, это один классификатор. тут проблема что фильтры нужно будет накладывать сразу на несколько от 1 до 10-20 характеристик товара и получать результат. и таких выборок будет много и часто (расчетное 1 выборка в секунду (типичные будут кешится), но может быть и куда больше. guest_20040621> типы товаров могут быть разные, а их характеристик еще больше Поищите в архиве, обсуждается постоянно. Стандартное решение - традиционная структура данных для известных характеристик (возможно, с типизацией) плюс структура данных для неизвестных на момент проектирования характеристик с тем расчетом, что с течением времени мусорные данные будут мигрировать в регулярные структуры. а наводку по каким названиям искать хоть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2010, 14:18 |
|
||
|
Объект и классификаторы
|
|||
|---|---|---|---|
|
#18+
> тут проблема Никакого отношения ваша проблема к классификации не имеет. Кроме того, мне сложно представить обычного юзера, фильтрующего по 20 критериям. Видите ли, это проблема больше методологическая, чем архитектурная. > таких выборок будет много Это уже другая задача. > а наводку по каким названиям искать хоть? Вопросы формулируются по-разному. Одни хотят универсальное хранилище, другие хотят хранить любое количество атрибутов. Пролистайте пяток страниц форума, обязательно наткнетесь на такие обсуждения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2010, 14:32 |
|
||
|
Объект и классификаторы
|
|||
|---|---|---|---|
|
#18+
guest_20040621> тут проблема Никакого отношения ваша проблема к классификации не имеет. Кроме того, мне сложно представить обычного юзера, фильтрующего по 20 критериям. Видите ли, это проблема больше методологическая, чем архитектурная. ну например продажа авто. фильтров там может быть достаточно много. и вариантов фильтрации у пользователя будет точно не меньше 10-ти (причем в принципе самые необходимые только) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2010, 14:39 |
|
||
|
Объект и классификаторы
|
|||
|---|---|---|---|
|
#18+
> например продажа авто ;) Это же ваше приложения, вам виднее, какие должны быть критерии выборки. Считаете, что их должно быть двадцать, значит, их должно быть двадцать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2010, 14:50 |
|
||
|
Объект и классификаторы
|
|||
|---|---|---|---|
|
#18+
guest_20040621> например продажа авто ;) Это же ваше приложения, вам виднее, какие должны быть критерии выборки. Считаете, что их должно быть двадцать, значит, их должно быть двадцать. проблема только в том как их хранить :( а потом делать быструю выборку из них :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2010, 15:51 |
|
||
|
Объект и классификаторы
|
|||
|---|---|---|---|
|
#18+
__вопрос_ проблема только в том как их хранить :( а потом делать быструю выборку из них :( Опять не вижу проблемы. Итак у нас одна таблица фактов и одно измерение Товары (может быть и другие но они нам пока неинтересны). Пользователь ввел свой набор фильтров, сформировал запрос, получил результат и хочет сохранить свои фильтры чтобы в следующий раз начинать не с чистого листа? Где проблема? На каком этапе? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2010, 17:23 |
|
||
|
Объект и классификаторы
|
|||
|---|---|---|---|
|
#18+
Да на первый взгляд и проблем особых нету. Минимизхированый вариант для работы свел к трем таблицам Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. но при такой в случае если пользователь будет делать фильтр по атрибутам (на входе знаем все ИД атрибутов) соорудится такой себе немалый in - что приведет в конечном итоде к сканированию всей таблицы :( для увеличения быстродействия по выборке можно написать и нечто подобное create table #t (id int primary key) insert into #t(id) values(1) insert into #t(id) values(3) select TovarId from TovarAttribute t inner join #t on t.AttributeId = #t.id drop table #t отсбда вопрос как лучше сделать/переделать подобную структуру чтобы при выборке по нескольким атрибутам запрос на выборку выполнялся максимально быстро? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2010, 18:15 |
|
||
|
Объект и классификаторы
|
|||
|---|---|---|---|
|
#18+
__вопрос_ что приведет в конечном итоде к сканированию всей таблицы :( Какой? Если про товары, то нефиг делать EAV. EAV это неизлечимые проблемы с производительностью. И где у вас здесь факты (предположительно около миллиарда) например продажи/поступления и т.п. товаров. Или их нет (или есть но это уже другая история к данному топику не относящаяся)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2010, 20:03 |
|
||
|
Объект и классификаторы
|
|||
|---|---|---|---|
|
#18+
SERG1257__вопрос_ что приведет в конечном итоде к сканированию всей таблицы :( Какой? Если про товары, то нефиг делать EAV. EAV это неизлечимые проблемы с производительностью. И где у вас здесь факты (предположительно около миллиарда) например продажи/поступления и т.п. товаров. Или их нет (или есть но это уже другая история к данному топику не относящаяся)? фактов как таковых не будет, задача несовсем касающаяся продаж (в привычном виде :) ) в принципе сейчас протестировал выборку через In - и был приятно удивлен так как даже при больших условиях (более 1000 значений для выборки) все отдается на ура и план запроса строится так великолепно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2010, 12:44 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=37037493&tid=1542381]: |
0ms |
get settings: |
4ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
273ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
29ms |
get tp. blocked users: |
1ms |
| others: | 190ms |
| total: | 518ms |

| 0 / 0 |
