查询数据库时,使用索引来排序遇到的问题
有一个表image1,使用下面的SQL语句创建的:
CREATE TABLE image1
(
instance_uid VARCHAR(64) NOT NULL,
image_file VARCHAR(255) NOT NULL,
rcvd_date INTEGER NULL,
rcvd_time INTEGER NULL,
file_size INTEGER NULL,
transaction_uid VARCHAR(64) NULL,
deleted VARCHAR(1) DEFAULT 'F',
key_image VARCHAR(1) DEFAULT 'F',
PRIMARY KEY (instance_uid)
)
CREATE INDEX image_delete ON image1(deleted,rcvd_date,rcvd_time)
从上面的SQL语句可以看出,字段instance_uid是主键,另外创建了一个索
引image_delete。现在程序中,我用下面的SQL语句查询,想要查询的结果
按照 deleted, rcvd_date, rcvd_time 排序,于是我使用下面的SQL语句
查询:
SELECT * FROM image1(INDEX=image_delete)
结果却发现(使用的是SQL Server 2000个人版),查询到的数据,并没有
按照deleted, rcvd_date, rcvd_time 排序。请问一下如何使用索引(INDEX)
让查询结果排序?或者SQL语句本身没有问题,而是SQL Server本身的问题?
直接使用 SELECT * FROM image1 order by deleted,rcvd_date,rcvd_time
当然可以直接排序,但是这样没有使用索引,速度很慢。所以我想在查询时
使用索引来达到快速排序的目的。如果查询时不使用索引,就没有必要去建
立image_delete这个索引了。不知道大家有没有遇到过这个问题?又如何解
决这个问题?