powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Как хранить атрибуты?
12 сообщений из 87, страница 4 из 4
Как хранить атрибуты?
    #37777388
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv
> Самые "запущенные" случаи, связанные с медленной обработкой данных (в частности,
> для отчетов), мне встречались, когда открывались курсоры по таблицам, в цикле по
> которым с вложенными циклами по под-курсорами выполнялись расчеты результатов
> (извилины заплетало конкретно)... Естественно, все это с дикими тормозами, с

Ну это ты приводишь случай клинического идиотизма.
Это не интересно, потому что с этим всё понятно.


блин, вместо того, что бы сказать - "мы не занимались такими задачами", вы начали троллить
кроме ругани, нифига умного не сказали :(
"100 миллисекунд мало для оптимизации" - ну тады и нефиг валить на других, если оптимизации нет
...
Рейтинг: 0 / 0
Как хранить атрибуты?
    #37777393
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
S.G.ViPRosS.G.,

эти 50 лимонов перегенерируются(ну не все 50, тут как повезет, как сработает эвристика отсечения) n раз при решения задачи, что бы найти последний набор 50 лимонов
50 лимонов - годовой портфель среднего заводикагенерируются, эвристика. мда, мне почему-то так и казалось.
СУБД, они как бы не очень подходят для комбинаторных задач, или если решать такие задачи с помощью СУБД, то там надо смотреть и настраивать очень внимательно. Генерируется куча данных, статистика естественно отстает, ее надо подкрутить. Или вообще брать специализированньй инструмент для этого.
Так что дело не в индексах, а в их приготовлении, имхо.
да какие еще способы приготовления?
тупые индексы (нельзя даже выражение задать), тупое дискретное обновление статистики, для которой нет разницы в объеме данных, а интересует только процент обновления (подкручивание - учащение обновления статистики приводит к еще большим тормозам, реорганизация индексов, убийство, создание и т.д. валить нафиг ваще)
что бы хоть как то работало приходится ввести разбиения, разработать спец структуры, которые к домену никакого отношения не имеет, т.е. создать такую оптимизированную под СУБД БД, что бы субд могла с ней работать белее менее приемлемо
но с таким разбиениями и сам могу спокойно все сделать, а СУБД как хранилище для нечастых обращений

и почему вы все тут дкмаете что кроме вас никто не читает доки, применяет чужой опыт и экспериментирует
что вы за такие гуру блин?
...
Рейтинг: 0 / 0
Как хранить атрибуты?
    #37777422
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
On 04/30/2012 02:42 PM, ViPRos wrote:
> что вы за такие гуру блин?

Вот тут ты прав, да :-)
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как хранить атрибуты?
    #37777424
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
On 04/30/2012 02:42 PM, ViPRos wrote:

> что вы за такие гуру блин?

А всё остальное я не понял.
Если у тебя drop/create index валит базу, ну, что ж ... только
посочувствовать можно, что приходится такую СУБД использовать. Если
статистика не отражает данные (бывает, она не может давать 100% объективную
картину) -- надо писать хинты в запросах и/или планы руками.
Причём это -- _н_о_р_м_а_л_ь_н_о_, по другому не может быть принципиально.
80% запросов СУБД оптимизирует сама, 20% должен делать ты сам, руками.
(Конкретные проценты могут варьироваться).
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как хранить атрибуты?
    #37777428
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivПричём это -- _н_о_р_м_а_л_ь_н_о_, по другому не может быть принципиально.
80% запросов СУБД оптимизирует сама, 20% должен делать ты сам, руками.
(Конкретные проценты могут варьироваться).

это фигня, а не _н_о_р_м_а_л_ь_н_о_
...
Рейтинг: 0 / 0
Как хранить атрибуты?
    #37777440
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivOn 04/30/2012 02:42 PM, ViPRos wrote:
> что вы за такие гуру блин?

Вот тут ты прав, да :-)

гуру, блин

http://www.sql.ru/forum/actualthread.aspx?tid=495300&hl=masterziv
...
Рейтинг: 0 / 0
Как хранить атрибуты?
    #37777482
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
On 04/30/2012 03:35 PM, ViPRos wrote:
> это фигня, а не _н_о_р_м_а_л_ь_н_о_

Родной, ты возми, напиши сначала свою СУБД, которая будет
оптимизировать 100% запросов, будет идеально хранить статистику
и никогда не ошибаться -- поговорим тогда.
И это не "сперва добейся" никакой, а это просто невозможно
сделать в принципе. Оптимизатор не способен в принципе
искать самый оптимальный план, это было бы долго,
статистика в принципе не может быть 100% точной, это
занимало бы столько же места, сколько и сама таблица.

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как хранить атрибуты?
    #37777484
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> гуру, блин

Да, я такой !
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как хранить атрибуты?
    #37777490
Cheerful CalfЕсть два варианта (в спойлере). Какой лучше и почему ?:)
(Количество записей <<10000)

+
варианты
Код: sql
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.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
/*===========================================================
* First variant
* 
*==========================================================*/
CREATE TABLE #Strings (
	ID INT,
	String NVARCHAR(32),
	Numbers NVARCHAR(32)
)

INSERT INTO #Strings VALUES (1, 'String1', '1, 2, 4')
INSERT INTO #Strings VALUES (2, 'String2', '4')
INSERT INTO #Strings VALUES (3, 'String3', '1, 3, 0')
INSERT INTO #Strings VALUES (4, 'String4', '4, 0')

SELECT String FROM #Strings WHERE Numbers LIKE N'%'+'4'+N'%'

DROP TABLE #Strings
GO

/*===========================================================
* Second variant
* 
*==========================================================*/
CREATE TABLE #Strings (
	ID INT,
	String NVARCHAR(32),
)

CREATE TABLE #Numbers (
	ID INT,
	Number NVARCHAR(32),
)

CREATE TABLE #StringsNumbers (
	ID INT,
	StringID INT,
	NumberID INT
)

INSERT INTO #Strings VALUES (1, 'String1')
INSERT INTO #Strings VALUES (2, 'String2')
INSERT INTO #Strings VALUES (3, 'String3')
INSERT INTO #Strings VALUES (4, 'String4')
INSERT INTO #Numbers VALUES (0, '0')
INSERT INTO #Numbers VALUES (1, '1')
INSERT INTO #Numbers VALUES (2, '2')
INSERT INTO #Numbers VALUES (3, '3')
INSERT INTO #Numbers VALUES (4, '4')
INSERT INTO #StringsNumbers VALUES (1, 1, 1)
INSERT INTO #StringsNumbers VALUES (2, 1, 2)
INSERT INTO #StringsNumbers VALUES (3, 1, 4)
INSERT INTO #StringsNumbers VALUES (4, 2, 4)
INSERT INTO #StringsNumbers VALUES (5, 3, 1)
INSERT INTO #StringsNumbers VALUES (6, 3, 3)
INSERT INTO #StringsNumbers VALUES (7, 3, 0)
INSERT INTO #StringsNumbers VALUES (8, 4, 4)
INSERT INTO #StringsNumbers VALUES (9, 4, 0)

SELECT #Strings.String
FROM   #StringsNumbers
       INNER JOIN #Numbers
            ON  #StringsNumbers.NumberID = #Numbers.ID
       INNER JOIN #Strings
            ON  #Strings.ID = #StringsNumbers.StringID
WHERE  #Numbers.Number = '4'
GROUP BY
       #Strings.String

DROP TABLE #Strings
DROP TABLE #Numbers
DROP TABLE #StringsNumbers
GO


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

"атрибутами" обычно называют нечто полупроизвольное. типа реестра виндового: некий ключ и значение-каша понятная только целевому потребителю.

на вопрос "какой лучше" можно только задать встречный: "лучший для чего?"
...
Рейтинг: 0 / 0
Как хранить атрибуты?
    #37777495
sphinx_mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosS.G.пропущено...

Так что дело не в индексах, а в их приготовлении, имхо.
да какие еще способы приготовления?
тупые индексы (нельзя даже выражение задать),

MSSQL поддерживает индексы по вычисляемым полям, поддерживает индексы по представлениям... Какие еще "выражения" Вы бы хотели "задать"?
ViPRos тупое дискретное обновление статистики, для которой нет разницы в объеме данных, а интересует только процент обновления (подкручивание - учащение обновления статистики приводит к еще большим тормозам, реорганизация индексов, убийство, создание и т.д. валить нафиг ваще)

Включать автоматический сбор статистики для индексов пробовали?
Перестройка индексов на больших объемах данных - это и в правду больно... Но чтобы выполнять это действие необходимо иметь весьма серьезные основания...
ViPRosи почему вы все тут дкмаете что кроме вас никто не читает доки, применяет чужой опыт и экспериментирует

А ведь Вы доки-то действительно НЕ ЧИТАЕТЕ ...
...
Рейтинг: 0 / 0
Как хранить атрибуты?
    #37777527
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sphinx_mv,

долго ж читал
обновить статистику стоит в мс по умолчанию
...
Рейтинг: 0 / 0
Как хранить атрибуты?
    #37777529
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да ладно гурю, отдыхайте
...
Рейтинг: 0 / 0
12 сообщений из 87, страница 4 из 4
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Как хранить атрибуты?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]