oraclesqlor
Ⅰ oracle sql 請問用什麼可以替代or,這樣查的效率特別慢
含有"IN"、"OR"的Where子句常會使用工作表,使索引失效;如果不產生大量重復值,可以考慮把子句拆開;拆開的子句中應該包含索引。
select count(*) from stuff where id_no in('0','1')(23秒)
可以考慮將or子句分開:
select count(*) from stuff where id_no='0'
select count(*) from stuff where id_no='1'
然後再做一個簡單的加法,與原來的SQL語句相比,查詢速度更快。
Ⅱ oracle sql 優化 in or 哪個效率高
執行的效率是一樣的。
兩極化的plan hash value一模一樣,說明他們內部執行是一模一樣的
Ⅲ oracle語句查詢 or和and
and優先順序大於or。
加括弧則優先執行or,後執行and;不加括弧,會先執行and,再執行or,所以查詢結果不同。舉例:
資料庫存在數據:
Thomas Carter
WilliamCarter
ThomasKing
執行:SELECT * FROM Persons WHERE (FirstName='Thomas' OR FirstName='William')
AND LastName='Carter'
結果為:
ThomasCarter
WilliamCarter
執行:SELECT * FROM Persons WHERE FirstName='Thomas' OR FirstName='William'
AND LastName='Carter'
結果為:
ThomasCarter
WilliamCarter
ThomasKing
(3)oraclesqlor擴展閱讀:
ORACLE資料庫特點:
1、完整的數據管理功能:
(1)數據的大量性
(2)數據的保存的持久性
(3)數據的共享性
(4)數據的可靠性
2、完備關系的產品:
(1)信息准則---關系型DBMS的所有信息都應在邏輯上用一種方法,即表中的值顯式地表示;
(2)保證訪問的准則
(3)視圖更新准則---只要形成視圖的表中的數據變化了,相應的視圖中的數據同時變化
(4)數據物理性和邏輯性獨立准則
3、分布式處理功能:ORACLE資料庫自第5版起就提供了分布式處理能力,到第7版就有比較完善的分布式資料庫功能了,一個ORACLE分布式資料庫由oraclerdbms、sql*Net、SQL*CONNECT和其他非ORACLE的關系型產品構成。
4、用ORACLE能輕松的實現數據倉庫的操作。
參考資料:網路-Oracle資料庫
Ⅳ 在oracle sql 命令窗口中出現ORA-01858: 在要求輸入數字處找到非數字字元什麼意思啊
意思是本來要求只能輸入數字的,現在給了非數字的。
出錯原因是:preparedstatement在執行的時候不能把紅框內的串替換為sql中的問號,主要是to_date函數替換不了。
dat是個date類型應該寫成:insert into tablename(colname) values ('"+dat.toString()+"')" ;
這樣資料庫才能把dat.toString()轉化為資料庫中的日期類型。
(4)oraclesqlor擴展閱讀:
注意事項
to_date函數先放到sql語句中,然後替換後面的變數,就不報這個錯誤了。
在oracle中建有date類型的欄位,插入可以採取如下方法:
1、如果是小時為:1-12採取如下格式:yyyy-mm-dd HH:MI:SS
insert into test values(to_date('2009-5-7 07:09:37','yyyy-mm-dd HH:MI:SS'));
2、如果是小時為:1-24採取如下格式:yyyy-mm-dd HH24:MI:SS
insert into test values(to_date('2009-5-7 17:09:37','yyyy-mm-dd HH24:MI:SS'));
Ⅳ oracle sql 用什麼可以替代or,這樣查詢特別慢
可以用union,比如select 內容 from user where name='張三' union select 內容 from user where name='李四',相當於select 內容 from user where name='張三' or name='李四' ,因為union會用到索引,不知道你這個表有沒有索引,表的數據多大?