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

问题描述 投票:2回答:3

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

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

使用别名有助于使其更快一点吗?

我正在使用Microsoft SQL Server。

performance optimization sql
3个回答
5
投票

如果你告诉我们你正在使用什么RDBMS,这会更好,但......

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

2 - 对于索引,请确保您在CNIC上有索引。您还希望主键上有一个良好的聚簇索引(最好像ID号一样)

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


2
投票

CNIC上创建一个索引:

CREATE INDEX ix_employee_cnic ON employee (cnic)

1
投票

首先,因为我看到这个列将用于存储Id卡号,然后你可以制作类型为int而不是varcharnvarchar的coulmn,因为与varcharnvarchar相比,搜索将在整数类型上更快。

第二,使用with (no lock),就像

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

这是为了最大限度地减少死锁的可能性。

© www.soinside.com 2019 - 2024. All rights reserved.