sql - 为什么在更改值时查询永远需要

标签 sql sql-server database performance sql-server-2012

如果我的表 Mission 具有以下结构:

emp_num              int             P.K
from_date            datetime        P.K
to_date              datetime        P.K
mission_location     varchar(200) 
mission_desc         varchar(200)
req_ser              int             P.K
req_year             int             P.K

CONSTRAINT [pkc_mission] PRIMARY KEY CLUSTERED 
(
    [emp_num] ASC,
    [from_date] ASC,
    [to_date] ASC,
    [ req_ser] ASC,
    [ req_year] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

当我尝试运行此查询时:

select *
from mission where emp_num =5307

它工作得非常快,但是当我尝试使用另一个值运行相同的查询时,它需要很长时间!

select *
from mission where emp_num =4595

最佳答案

请试试这个-

select  *
from    mission with (forceseek)
where   emp_num = 4595

关于sql - 为什么在更改值时查询永远需要,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40994420/

相关文章:

sql - 在 SQL Server 中查找表中的最大生命周期时出现错误

mysql - 将 SQL 数据库从 MySql (phpmyadmin) 迁移到 MSSQL (sql express)

c# - 从 DataAdapter 填充 DataTable - 选择了错误的列作为主键

php - 如何对 sql 表中的不同值执行摘要

sql - DISABLE TRIGGER ALL 是否应该禁用外键约束检查?

php - 使用 LIKE 检索行并传递一些 id。

php - 按日期对回复和新话题进行排序

java - 无论如何加速mapdb?

java - 如何解决此通信链路故障?

mysql - 从 MySQL 中的 JSON 字符串中提取 key