我从 NET 收到了一个面试问题,但没有找到合适的解决方案谁能告诉我 我这个查询有什么问题?
给定这个表结构和索引,后续查询有什么问题?
CREATE TABLE dbo.IndexQ (
ID int IDENTITY(1, 1) NOT NULL,
TestBit bit NOT NULL
)
GO
CREATE NONCLUSTERED INEX IX_IndexQ_TestBit ON dbo.IndexQ (TestBit)
GO
* Insert some rows where some bits are 0 and some are 1...
SELECT *
FROM dbo.IndexQ
WHERE TestBit = 1
* What's the problem with this query?
最佳答案
我想问题出在您的位字段上的 NONCLUSTERED 索引中。如果你有一个大表,你不应该在位字段上建立索引,因为它有更多的记录,它们索引的效率会降低,但你会在上面使用更多的日期。
参见 https://dba.stackexchange.com/questions/12888/should-i-index-a-bit-field-in-sql-server
关于SQL Server面试查询索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15875427/