1. Oracle中 多表連接到底有哪幾種方式
oracle中多表連接有很多種方式:
1、表與表連接有三種方式Nested loop, Hash join, Sort merge join。
2、Nested Loop就是循環嵌套的連接方法,對於被連接子集都是比較小的話,嵌套循環就是比較好的選擇。在嵌套中,內表被外表驅動,外表做一次循環,內表針對外表的每一行做循環。
3、這種表的返回結果集不能太大,否則就效率實在太低的,而且還要用在表都有索引的情況下才行的。
4、Sort Merge Join 用在數據沒有索引,並且數據必須是都排序號的情況。
5、總之,兩表之間相連,會根據表之間的不同情況選擇不同的連接方式,連接其實就是做表之間每行數據的遍歷,連之前都要做好准備,有么用索引,要麼用已排序號的表,要麼就用hash演算法,不存在什麼都不準備的純遍歷循環。
6、三種連接使用前提,當表都排序號的話用Sort Merge Join連接,當兩表都差不多大而且都還有索引就用Nested Loop的嵌套連接,當沒有索引也沒排序,而且數據量大的情況下就用這個hash演算法進行相連。
2. 客戶端連接ORACLE的幾種方法
裝個跟服務端上相同版本的oracle客戶端,再裝個pl/sql配置一下就能連上了:
找到你oracle客戶端安裝目錄中的tnsnames.ora文件,修改
zbds_251=
(description=
(address_list=
(address=(protocol=tcp)(host=140.28.19.251)(port=1521))
)
(connect_data=
(service_name=zbds)
)
)
「zbds」是你的oracle資料庫實例名,140.28.19.251是你的遠程伺服器的ip,「zbds_251」隨便起,是給pl/sql看的。