如何针对性能优化以下SQL查询?

时间:2010-11-11 14:27:22

标签: performance optimization sql

如何针对性能优化以下SQL查询?

select * from Employee where CNIC = 'some-CNIC-number'

使用别名有助于提高它的速度吗?

我正在使用Microsoft SQL Server。

3 个答案:

答案 0 :(得分:5)

如果你告诉我们你正在使用什么RDBMS,那就更好了,但是......

1 - 不要SELECT *。指定所需的列。更少的数据=更快的查询

2 - 对于索引,请确保您在CNIC上有索引。您还需要在主键上使用良好的聚簇索引(最好是ID号)

3 - 您将数字放在单引号' '中,表示您可以将其作为varchar列。如果它始终为NUMERIC,则它应为int/bigint数据类型。这占用的空间更少,检索和索引的速度更快。

答案 1 :(得分:2)

CNIC上创建索引:

CREATE INDEX ix_employee_cnic ON employee (cnic)

答案 2 :(得分:1)

首先,我看到此列将用于存储Id卡号,然后您可以使用int而不是varcharnvarchar类型的库,因为搜索会更快在整数类型上与varcharnvarchar进行比较。

其次,使用with (no lock),如

select * from Employee with (nolock) where CNIC = 'some-CNIC-number'

这是为了尽量减少死锁的可能性。