|
Запрос. Значение из БД в условие без применения параметров. | ☑ | ||
---|---|---|---|---|
0
totparen
27.07.11
✎
13:42
|
Подскажите пожалуйста, можно ли как-то обойтись ещё без применения параметров
ВЫБРАТЬ Номенклатура.Ссылка ИЗ Справочник.Номенклатура КАК Номенклатура ГДЕ Номенклатура.ВидНоменклатуры.Наименование = "Набор-комплект" |
|||
1
Axel2009
27.07.11
✎
13:44
|
можно, бацаешь регистр сведений, туда заносишь строками свои наименования и соединяешь с ним
|
|||
2
catena
27.07.11
✎
13:45
|
ВидНоменклатуры - кто по национальности?
|
|||
3
Defender aka LINN
27.07.11
✎
13:47
|
(0) Аллергия на параметры?
Лично я в этом запросе параметров не вижу, в чем проблема-то? |
|||
4
totparen
27.07.11
✎
13:52
|
(2) - справочник. Предопределенных элементов нет.
(3) Один из вариантов без параметра. Хочу проверить, что быстрее условие с сравнением с текстом, либо в сравнении по ссылке. Можно конечно ещё Временную таблицу сделать, с поиском по Наименованию а потом уже сравнивать, но может есть ещё что-нибудь с примененимем ЗНАЧЕНИЕ |
|||
5
Dem1urg
27.07.11
✎
13:52
|
(0) Можно, если "Набор-комплект" предопределенный элемент справочника. В языке запросов есть конструкция ЗНАЧЕНИЕ(?)
|
|||
6
forforumandspam
27.07.11
✎
13:53
|
(0) Я так понимаю, что ты так ни разу не писал:
...Счет = ЗНАЧЕНИЕ(ПланСчетов.Типовой.ДенежныеСредства) вместо ...Счет = &Счет |
|||
7
totparen
27.07.11
✎
13:53
|
Посоветуйте ресурс по оптимизации запросов.
|
|||
8
Fragster
гуру
27.07.11
✎
13:53
|
со ссылка = &ссылка быстрее, чем с ссылка.наименование="ыыыыыы"
|
|||
9
Fragster
гуру
27.07.11
✎
13:54
|
(7) моск. профайлер скуля
|
|||
10
Defender aka LINN
27.07.11
✎
13:54
|
(4) По ссылке быстрее будет, соединения лишнего нет.
|
|||
11
totparen
27.07.11
✎
13:54
|
(5)(6) -> (4) Предопределенных нет. ))
|
|||
12
Axel2009
27.07.11
✎
13:55
|
(4) быстрее то что быстрее сравнивается.
(8) ну ссылка не составная имеет размер 16 байт. если наименование содержит меньше чем 16 байт, тогда по наименованию быстрее. вопрос в индексах встанет |
|||
13
totparen
27.07.11
✎
13:56
|
(8) (10) (12) мерси.
|
|||
14
Fragster
гуру
27.07.11
✎
13:56
|
(12) нифига не правильно
|
|||
15
Axel2009
27.07.11
✎
13:57
|
(14) по какому критерию? если принять во внимание, что я еще не учел соединение.
|
|||
16
Defender aka LINN
27.07.11
✎
13:57
|
(12) Конечно. А ничего, что для того, чтобы получить наименование, надо соединение с другой таблицей сделать?
|
|||
17
Axel2009
27.07.11
✎
13:58
|
(16) нельзя сказать что ВСЕГДА поиск по ссылке быстрее поиска по строке. все зависит от запроса.
|
|||
18
Fragster
гуру
27.07.11
✎
14:04
|
(15) соединение, размер ссылки, индекс у ссылки primary, наименования и кода (если они включены в ввод по строке) - составной...
|
|||
19
Fragster
гуру
27.07.11
✎
14:07
|
наименование - варчар, ссылка - фиксед бинари
|
|||
20
Axel2009
27.07.11
✎
14:07
|
(18) ну прежде чем ссылку сравнивать, в любом случае нужно входной параметр передать ссылку. а его нужно для начала найти...
|
|||
21
Fragster
гуру
27.07.11
✎
14:08
|
(20) зачем? ссылка может хранится в сохраненных настройках, например
|
|||
22
H A D G E H O G s
27.07.11
✎
14:09
|
(19) Варчар не храниться в основной таблице. Как и image?
|
|||
23
H A D G E H O G s
27.07.11
✎
14:10
|
(18) primary индекс -че это?
Кластерный индекс - знаю. primary - нет, не видел... |
|||
24
Axel2009
27.07.11
✎
14:10
|
(21) да может быть все что угодно, только от этого однозначного ответа не будет, что по ссылка всегда быстрее..
(22) хранится.. не хранится строка неограниченной длины - ака text |
|||
25
Fragster
гуру
27.07.11
✎
14:11
|
(23) первичный ключ, чО
|
|||
26
Fragster
гуру
27.07.11
✎
14:12
|
(22) индекс по вар- ЕМНИП медленнее, чем по фиксед.
|
|||
27
H A D G E H O G s
27.07.11
✎
14:12
|
(25) Индекс и ключ - разные вещи..
|
|||
28
Fragster
гуру
27.07.11
✎
14:12
|
(22) хранится в основной таблице, но длина строки переменная - это немного замедляет
|
|||
29
H A D G E H O G s
27.07.11
✎
14:13
|
(24) Че делать, если поле хранит строки переменной длины?
|
|||
30
Axel2009
27.07.11
✎
14:13
|
(21)+в общем я знаю что ты знаешь. поэтому дискуссировать на эту тему не надо ИМХО =)
(25) PRIMARY - группа файлов ващет.. |
|||
31
H A D G E H O G s
27.07.11
✎
14:14
|
(28) Как ты себе это представляешь?
|
|||
32
Axel2009
27.07.11
✎
14:14
|
(26) ниразу такого не слышал на форумах по скулю. быстрее то, где меньше данных..
|
|||
33
Axel2009
27.07.11
✎
14:15
|
(29) вопрос не понял..
|
|||
34
H A D G E H O G s
27.07.11
✎
14:15
|
При увеличении длины строки - происходит реаллокация всех записей внутри 4 кбайтовой страницы, так?
|
|||
35
Axel2009
27.07.11
✎
14:16
|
(34) не 4кб, а 8кб, но так. а индексы имеют 900байтные страницы (я про скуль, остальные не изучал подробно)
|
|||
36
H A D G E H O G s
27.07.11
✎
14:16
|
(35) Жестко. Ок, 8 кбайт.
|
|||
37
Axel2009
27.07.11
✎
14:17
|
(35)+зы для переменной длины не произойдет.. колво данных не изменится фактически. для фиксированной произойдет.
|
|||
38
Fragster
гуру
27.07.11
✎
14:18
|
Расчет размера данных с переменной длиной:
Если таблица содержит столбцы с переменной длиной, определите, сколько пространства потребуется для хранения столбцов в строке: Variable_Data_Size = 2 + (Num_Variable_Cols x 2) + Max_Var_Size Байты, добавляемые к Max_Var_Size, нужны для отслеживания каждого столбца переменных. Эта формула исходит из предположения, что все столбцы переменной длины заполнены на 100 %. Если предполагается, что будет использовано меньше места для хранения столбца изменяемой длины, можно изменить значение Max_Var_Size в процентах от общей изменяемой длины для более точного подсчета общего размера таблицы. Примечание Примечание Можно сочетать столбцы varchar, nvarchar, varbinary или sql_variant, в результате чего общая ширина определенной таблицы превысит 8060 байт. Длина каждого из этих столбцов должна быть в пределах 8 000 байт для столбцов типа varchar, varbinary или sql_variant и 4 000 байт для столбцов типа nvarchar. Тем не менее их общая ширина в таблице может превышать предел в 8 060 байт. Дополнительные сведения см. в разделе Превышающие размер страницы данные строки, превышающие 8 КБ. Если в таблице нет столбцов переменной ширины, присвойте параметру Variable_Data_Size значение 0. Вычислите общий размер строк: Row_Size = Fixed_Data_Size + Variable_Data_Size + Null_Bitmap + 4 |
|||
39
Fragster
гуру
27.07.11
✎
14:20
|
Алгоритм точного определения пространства, используемого для хранения значений типов данных LOB varchar(max), varbinary(max), nvarchar(max), text, ntext, xml, и image, сложен. Достаточно просто прибавить ожидаемую среднюю величину значений LOB к общему размеру кучи.
|
|||
40
Fragster
гуру
27.07.11
✎
14:22
|
||||
41
Fragster
гуру
27.07.11
✎
14:23
|
При задании для таблицы ограничения PRIMARY KEY компонент Database Engine гарантирует уникальность данных созданием уникального индекса для столбцов первичных ключей. Этот индекс также обеспечивает быстрый доступ к данным при использовании первичного ключа в запросах. Таким образом, выбранные первичные ключи должны соответствовать правилам создания уникальных индексов.
|
|||
42
H A D G E H O G s
27.07.11
✎
14:25
|
(41) Вон оно че..
|
|||
43
Axel2009
27.07.11
✎
14:34
|
(38) откуда инфа про Num_Variable_Cols x 2?
у нас 1 таблица с типом varchar(1000) и заполняем по 1му символу. сколько будет занимать объем данных на 1000 строк? (39) ну да, проще написать "сложный алгоритм", и давайте считать что 100%, чтобы голову не забивать =) (40) понял про что. раньше это были constraints.. |
|||
44
Fragster
гуру
27.07.11
✎
14:47
|
(43) это с MSDN про определение размера кучи
|
|||
46
Fragster
гуру
27.07.11
✎
14:48
|
и (39) тоже оттуда
|
|||
47
Fragster
гуру
27.07.11
✎
14:51
|
с первичным ключем ИТОГИ работают в 1с прикольно. если сделать ИТОГИ ПО первичному ключу, оно же ссылка - то в полях итогов также будут значения остальных столбцов:
ВЫБРАТЬ ПЕРВЫЕ 100 РеализацияТоваровТовары.Ссылка, РеализацияТоваровТовары.НомерСтроки, РеализацияТоваровТовары.Номенклатура, РеализацияТоваровТовары.Количество ПОМЕСТИТЬ ТЧ ИЗ Документ.РеализацияТоваров.Товары КАК РеализацияТоваровТовары ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РеализацияТоваров.Ссылка КАК Ссылка, РеализацияТоваров.ВидОперации, ТЧ.НомерСтроки, ТЧ.Ссылка.ВидОперации, ТЧ.Номенклатура, ТЧ.Количество, РеализацияТоваров.Номер ИЗ ТЧ КАК ТЧ ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РеализацияТоваров КАК РеализацияТоваров ПО ТЧ.Ссылка = РеализацияТоваров.Ссылка ИТОГИ ПО Ссылка |
|||
48
Axel2009
27.07.11
✎
14:57
|
(46) все допер. для переменной длины добавляем 2 байта на колонку, в этих данных хранится длинна символов строки. ну может еще 2 байта на хранение чегото там, итого 4 байта + 4 символа = 8 байт. длина ссылки 16 байт, что несколько больше, чем переменная длина..
(47) сгруппировать по также работает.. |
|||
49
hhhh
27.07.11
✎
15:13
|
щас окажется, что у него файловая база, а не SQL
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |