回覆列表
-
1 # 用戶417431251336136
-
2 # 給你說
直接訪問表中數據的方法有兩種: 全表掃描和ROWID掃描。
1.1 全表掃描
oracle在訪問目標表裡面的數據時,會從該表所佔用的第一個區(EXTENT)的第一個塊(BLOCK)開始掃
描,一直掃描到該表的高水位線(HWM,High Water Mark),最後返回滿足where條件的數據。
析:全表掃描時候會使用多塊讀,在目標表數據量不大的時候,效率是很高的,但問題在於,全表掃
描執行時間不穩定、不可控,執行時間會隨著數據量遞增而遞增;
1.2 ROWID掃描
rowid掃描是指oracle在訪問數據時,是通過數據所在的物理存儲地址去定位並訪問數據。
對於oracle裡的堆表來說,可通過oracle內置的rowid偽列得到對應行記錄所在的rowid的值。然後通過
DBMS_ROWID包裡面的相關方法將rowid偽列翻譯成為對應數據行的實際物理存儲地址,如下
select empno,ename,rowid,dbms_rowid.rowid_relative_fno(rowid)||'_'||
dbms_rowid.rowid_block_number(rowid)||'_'||dbms_rowid.rowid_row_number(rowid)
fr
用WINCC的C腳本訪問他的SQL數據庫並不合適!因為本來vc++ 和VB對比,vb訪問數據庫比VC要方便,容易掌握,快捷最好的方法:採用VB編寫SQL訪問數據,外掛於WINCC。訪問WINCC SQL,用常規的方法是訪問不到的,因為SQL FOR WINCC有獨特的訪問方式。