(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.
Здравствуйте, Senyai, Вы писали:
S> И вот я подумал, что, наверное, это не очень эффективно.
А что понимать под эффективностью?
Если размер то вариант с битовым полем места конечно займет меньше, но боюсь, что ты этого не заметишь...
Да и сравнить бит с четверкой не получится, там хранится либо 1 либо 0 — это же бит...
А если понимать скорость, то оба варианта работают одинаково (плохо) — и там и там table scan. В первом случае предикат приходится вычислять для каждого выражения — так что индекс бесполезен, а по битовым полям индекс вообще построить нельзя.
Здравствуйте, Merle, Вы писали:
M>Здравствуйте, Senyai, Вы писали: M>А что понимать под эффективностью?
скорость SELECTa M>Да и сравнить бит с четверкой не получится, там хранится либо 1 либо 0 — это же бит...
я ж написал, что там tinyint M>А если понимать скорость, то оба варианта работают одинаково (плохо)
этого я и боялся.
Придётся использовать стилбцы с tinyint; хранить там 1 или 0 и делать по ним индекс.
Здравствуйте, Senyai, Вы писали:
M>>Да и сравнить бит с четверкой не получится, там хранится либо 1 либо 0 — это же бит... S>я ж написал, что там tinyint