问题:某语句查询结果自动按照第一个字段内容进行了排序,影响使用,需要按照表数据插入顺序进行返回。
排查步骤:
1、缩减语句,不带where条件查询测试,返回结果没有排序;
2、自己创建测试表,插入几条数据后,使用带where条件的语句查询,返回结果没有排序;
3、分析原语句查询的表结构,及执行计划,发现一个组合索引,刚好与where条件列有关,于是创建类似表结构测试
drop table PXCS;
CREATE TABLE PXCS
(
"data_field_id" VARCHAR(40) NOT NULL,
"data_table_id" VARCHAR(40) NOT NULL,
"data_field_name" VARCHAR(40),
NOT CLUSTER PRIMARY KEY("data_field_id","data_table_id")) ;
insert into PXCS values ('b','ods_company_basic_info_qcc_area','1'),
('a','ods_company_basic_info_qcc_area','2'),
('c','ods_company_basic_info_qcc_area','3');
select * from PXCS where "data_table_id" ='ods_company_basic_info_qcc_area';
发现该方式查询结果也自动排序
执行计划如下
排查ini参数,发现与以下参数默认值为1有关
调整参数值为0后查询结果不再排序
SP_SET_PARA_VALUE(1,'ENABLE_INDEX_FILTER',0)
文章
阅读量
获赞