[MSSQL] Эффективность SELECTов с BITWISE
От: Senyai Россия http://www.arseniy.net
Дата: 26.10.05 12:25
Оценка:
Собственно сабж.

Сейчас я делаю такие запросы
SELECT * FROM TBL WHERE STAT&4=4
(STAT это tinyint) И вот я подумал, что, наверное, это не очень эффективно. Возможно, лучше сделать
SELECT * FROM TBL WHERE BIT2=4
, где BIT2 имеет тип bit. И вроде бы

Microsoft® SQL Server™ optimizes the storage used for bit columns. If there are 8 or fewer bit columns in a table, the columns are stored as 1 byte. If there are from 9 through 16 bit columns, they are stored as 2 bytes, and so on.

Спасибо за внимание.
Не бойтесь совершенства. Вам его не достичь. © Сальвадор Дали
Re: [MSSQL] Эффективность SELECTов с BITWISE
От: Merle Австрия http://rsdn.ru
Дата: 26.10.05 12:58
Оценка: 3 (1)
Здравствуйте, Senyai, Вы писали:

S> И вот я подумал, что, наверное, это не очень эффективно.

А что понимать под эффективностью?
Если размер то вариант с битовым полем места конечно займет меньше, но боюсь, что ты этого не заметишь...
Да и сравнить бит с четверкой не получится, там хранится либо 1 либо 0 — это же бит...
А если понимать скорость, то оба варианта работают одинаково (плохо) — и там и там table scan. В первом случае предикат приходится вычислять для каждого выражения — так что индекс бесполезен, а по битовым полям индекс вообще построить нельзя.
... << RSDN@Home 1.1.4 beta 7 rev. 0>>
Мы уже победили, просто это еще не так заметно...
Re[2]: [MSSQL] Эффективность SELECTов с BITWISE
От: Senyai Россия http://www.arseniy.net
Дата: 26.10.05 13:04
Оценка:
Здравствуйте, Merle, Вы писали:

M>Здравствуйте, Senyai, Вы писали:

M>А что понимать под эффективностью?
скорость SELECTa
M>Да и сравнить бит с четверкой не получится, там хранится либо 1 либо 0 — это же бит...
я ж написал, что там tinyint
M>А если понимать скорость, то оба варианта работают одинаково (плохо)
этого я и боялся.

Придётся использовать стилбцы с tinyint; хранить там 1 или 0 и делать по ним индекс.

Спасибо за помощь.
Не бойтесь совершенства. Вам его не достичь. © Сальвадор Дали
Re[3]: [MSSQL] Эффективность SELECTов с BITWISE
От: Merle Австрия http://rsdn.ru
Дата: 26.10.05 13:46
Оценка:
Здравствуйте, Senyai, Вы писали:

M>>Да и сравнить бит с четверкой не получится, там хранится либо 1 либо 0 — это же бит...

S>я ж написал, что там tinyint

где BIT2 имеет тип bit

... << RSDN@Home 1.1.4 beta 7 rev. 0>>
Мы уже победили, просто это еще не так заметно...
Re[4]: [MSSQL] Эффективность SELECTов с BITWISE
От: Senyai Россия http://www.arseniy.net
Дата: 26.10.05 13:53
Оценка:
был уверен,что написал
SELECT * FROM TBL WHERE BIT2=1
. Извиняйте, в упор не видел.
Не бойтесь совершенства. Вам его не достичь. © Сальвадор Дали
Re[4]: [MSSQL] Эффективность SELECTов с BITWISE
От: stasukas  
Дата: 26.10.05 13:55
Оценка:
Здравствуйте, Merle, Вы писали:

S>>я ж написал, что там tinyint

M>

где BIT2 имеет тип bit

Человек имел ввиду это:

(STAT это tinyint)

... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Now playing: Crazy D. — Unbalanced [Baby Killer Remix]
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.