20180601]函數與標量子查詢2.txt

[20180601]函數與標量子查詢2.txt

--//昨天看http://www.cnblogs.com/kerrycode/p/9099507.html鏈接,里面提到:

通俗來將,當使用標量子查詢的時候,ORACLE會將子查詢結果緩存在哈希表中, 如果后續的記錄出現同樣的值,優化器通過緩存在哈希
表中的值,判斷重復值不用重復調用函數,直接使用上次計算結果即可。從而減少調用函數次數,從而達到優化性能的效果。另外在
ORACLE 10和11中, 哈希表只包含了255個Buckets,也就是說它能存儲255個不同值,如果超過這個范圍,就會出現散列沖突,那些出現
散列沖突的值就會重復調用函數,即便如此,依然能達到大幅改善性能的效果。

--//我自己也重復測試驗證看看.

1.環境:
SCOTT@book> @ ver1
PORT_STRING??????????????????? VERSION??????? BANNER
------------------------------ -------------- --------------------------------------------------------------------------------
x86_64/Linux 2.4.xx??????????? 11.2.0.4.0???? Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

grant execute on sys.dbms_lock to scott;

CREATE OR REPLACE FUNCTION sleep (seconds IN NUMBER)
RETURN NUMBER
is
d_date date;
BEGIN
? select sysdate into d_date from dual;
--//sys.dbms_lock.sleep(0.1);
? RETURN seconds;
END;
/

create table t as select rownum id1,mod(rownum-1,255)+1 id2 from dual connect by level<=255;
ALTER TABLE t MINIMIZE RECORDS_PER_BLOCK ;
insert into t select * from t;
commit ;

--//分析表略.

2.測試:
--//建立測試腳本:
set autot traceonly
select rowid,t.*,(select sleep(id2) from dual) s from t ;
--//select rowid,t.*,(select sleep(id1) from dual) s from t ;

SCOTT@book> select rowid,t.*,(select sleep(id2) from dual) s from t ;
510 rows selected.
Execution Plan
----------------------------------------------------------
Plan hash value: 1032660217
--------------------------------------------------------------------------
| Id? | Operation???????? | Name | Rows? | Bytes | Cost (%CPU)| Time???? |
--------------------------------------------------------------------------
|?? 0 | SELECT STATEMENT? |????? |?? 510 |? 4080 |???? 4?? (0)| 00:00:01 |
|?? 1 |? FAST DUAL??????? |????? |???? 1 |?????? |???? 2?? (0)| 00:00:01 |
|?? 2 |? TABLE ACCESS FULL| T??? |?? 510 |? 4080 |???? 4?? (0)| 00:00:01 |
--------------------------------------------------------------------------
Statistics
----------------------------------------------------------
??????? 282? recursive calls
????????? 0? db block gets
????????? 9? consistent gets
????????? 0? physical reads
????????? 0? redo size
????? 16624? bytes sent via SQL*Net to client
??????? 542? bytes received via SQL*Net from client
????????? 4? SQL*Net roundtrips to/from client
????????? 0? sorts (memory)
????????? 0? sorts (disk)
??????? 510? rows processed

--//從遞歸看調用函數282次.注意為了測試準確,多執行幾次,才能比較準確測出函數調用次數.
--//按照前面的介紹,難道存在hash沖突.

--//如果查詢where id2 in ( 48 , 75) ,可以發現遞歸調用3次,返回4行.
--//為什么不是4次呢?
SCOTT@book> select rowid,t.*,(select sleep(id2) from dual) s from t where id2 in ( 48 , 75) ;
Execution Plan
----------------------------------------------------------
Plan hash value: 1032660217
--------------------------------------------------------------------------
| Id? | Operation???????? | Name | Rows? | Bytes | Cost (%CPU)| Time???? |
--------------------------------------------------------------------------
|?? 0 | SELECT STATEMENT? |????? |???? 4 |??? 32 |???? 4?? (0)| 00:00:01 |
|?? 1 |? FAST DUAL??????? |????? |???? 1 |?????? |???? 2?? (0)| 00:00:01 |
|*? 2 |? TABLE ACCESS FULL| T??? |???? 4 |??? 32 |???? 4?? (0)| 00:00:01 |
--------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
?? 2 - filter("ID2"=48 OR "ID2"=75)
Statistics
----------------------------------------------------------
????????? 3? recursive calls
????????? 0? db block gets
????????? 7? consistent gets
????????? 0? physical reads
????????? 0? redo size
??????? 878? bytes sent via SQL*Net to client
??????? 520? bytes received via SQL*Net from client
????????? 2? SQL*Net roundtrips to/from client
????????? 0? sorts (memory)
????????? 0? sorts (disk)
????????? 4? rows processed

--//修改函數定義
CREATE OR REPLACE FUNCTION sleep1 (seconds IN NUMBER)
RETURN NUMBER
is
d_date date;
BEGIN
? select sysdate into d_date from dual;
? sys.dbms_lock.sleep(seconds/10);
? RETURN seconds;
END;
/

SCOTT@book> select rowid,t.*,(select sleep1(id2) from dual) s from t where id2 in ( 48 , 75) ;
ROWID???????????????????? ID1??????? ID2????????? S
------------------ ---------- ---------- ----------
AAAWP4AAEAAAAJbAAv???????? 48???????? 48???????? 48
AAAWP4AAEAAAAJbABK???????? 75???????? 75???????? 75
AAAWP4AAEAAAAJdAAv???????? 48???????? 48???????? 48
AAAWP4AAEAAAAJdABK???????? 75???????? 75???????? 75
Elapsed: 00:00:19.81

SCOTT@book> select rowid,t.*,(select sleep1(id2) from dual) s from t where id2 in ( 49 , 75) ;
ROWID???????????????????? ID1??????? ID2????????? S
------------------ ---------- ---------- ----------
AAAWP4AAEAAAAJbAAw???????? 49???????? 49???????? 49
AAAWP4AAEAAAAJbABK???????? 75???????? 75???????? 75
AAAWP4AAEAAAAJdAAw???????? 49???????? 49???????? 49
AAAWP4AAEAAAAJdABK???????? 75???????? 75???????? 75
Elapsed: 00:00:12.41

--// 48+75+75 = 198, 49+75 = 124
--// 可以發現從時間看,查詢 id2 in ( 48 , 75) 時,調用sleep1(48)1次,sleep1(75)2次.
--// 而查詢 id2 in ( 49 , 75) 時,調用sleep1(49)1次,sleep1(75)1次.
--// 換一句話講我的理解,調用48,75存在沖突,都進入bucket中,而出現沖突時會重復調用函數.

--//如果我建立索引:
SCOTT@book> create index i_t_id2 on t(id2);
Index created.

SCOTT@book> set timing on
SCOTT@book> select /*+ index(t i_t_id2 ) */ rowid,t.*,(select sleep1(id2) from dual) s from t where id2 in ( 49 , 75) ;
ROWID???????????????????? ID1??????? ID2????????? S
------------------ ---------- ---------- ----------
AAAWP4AAEAAAAJbAAw???????? 49???????? 49???????? 49
AAAWP4AAEAAAAJdAAw???????? 49???????? 49???????? 49
AAAWP4AAEAAAAJbABK???????? 75???????? 75???????? 75
AAAWP4AAEAAAAJdABK???????? 75???????? 75???????? 75
Elapsed: 00:00:12.41
--//這樣執行時間變成12.4秒,還是不好理解.
--//似乎進入buckets時放在前面.這樣slee1(75)僅僅調用1次.好煩,那位能解析清楚....

SCOTT@book> drop index i_t_id2;
Index dropped.

--//我前面查詢id2=1,255,遞歸282次,估計不存在1個bucket 3個值的情況.
--//這樣有282-255 = 27值存在沖突(假設哈希表只包含了255個Buckets)

3.如何確定hash沖突值呢?
--//建立腳本:
variable x number;
exec :x := 1;
select rowid,t.*,(select sleep(id2) from dual) s from t where id2<=:x;

set autot traceonly
exec :x := 1;
/
exec :x := 2;
/
....
exec :x := 252;
/
exec :x := 253;
/
exec :x := 254;
/
exec :x := 255;
/
set autot off

--//多執行幾次,避免其它遞歸影響.
spool az.txt
@ ay.txt
spool off

$ egrep 'recursive calls|rows processed' az.txt | paste - -
????????? 1? recursive calls????????????? 2? rows processed
????????? 2? recursive calls????????????? 4? rows processed
????????? 3? recursive calls????????????? 6? rows processed
????????? 4? recursive calls????????????? 8? rows processed
????????? 5? recursive calls???????????? 10? rows processed
????????? 6? recursive calls???????????? 12? rows processed
????????? 7? recursive calls???????????? 14? rows processed
????????? 8? recursive calls???????????? 16? rows processed
????????? 9? recursive calls???????????? 18? rows processed
???????? 10? recursive calls???????????? 20? rows processed
???????? 11? recursive calls???????????? 22? rows processed
???????? 12? recursive calls???????????? 24? rows processed
???????? 13? recursive calls???????????? 26? rows processed
???????? 14? recursive calls???????????? 28? rows processed
???????? 15? recursive calls???????????? 30? rows processed
???????? 16? recursive calls???????????? 32? rows processed
???????? 17? recursive calls???????????? 34? rows processed
???????? 18? recursive calls???????????? 36? rows processed
???????? 19? recursive calls???????????? 38? rows processed
???????? 20? recursive calls???????????? 40? rows processed
???????? 21? recursive calls???????????? 42? rows processed
???????? 22? recursive calls???????????? 44? rows processed
???????? 23? recursive calls???????????? 46? rows processed
???????? 24? recursive calls???????????? 48? rows processed
???????? 25? recursive calls???????????? 50? rows processed
???????? 26? recursive calls???????????? 52? rows processed
???????? 27? recursive calls???????????? 54? rows processed
???????? 28? recursive calls???????????? 56? rows processed
???????? 29? recursive calls???????????? 58? rows processed
???????? 30? recursive calls???????????? 60? rows processed
???????? 31? recursive calls???????????? 62? rows processed
???????? 32? recursive calls???????????? 64? rows processed
???????? 33? recursive calls???????????? 66? rows processed
???????? 34? recursive calls???????????? 68? rows processed
???????? 35? recursive calls???????????? 70? rows processed
???????? 36? recursive calls???????????? 72? rows processed
???????? 37? recursive calls???????????? 74? rows processed
???????? 38? recursive calls???????????? 76? rows processed
???????? 39? recursive calls???????????? 78? rows processed
???????? 40? recursive calls???????????? 80? rows processed
???????? 41? recursive calls???????????? 82? rows processed
???????? 42? recursive calls???????????? 84? rows processed
???????? 43? recursive calls???????????? 86? rows processed
???????? 44? recursive calls???????????? 88? rows processed
???????? 45? recursive calls???????????? 90? rows processed
???????? 46? recursive calls???????????? 92? rows processed
???????? 47? recursive calls???????????? 94? rows processed
???????? 48? recursive calls???????????? 96? rows processed
???????? 49? recursive calls???????????? 98? rows processed
???????? 50? recursive calls??????????? 100? rows processed
???????? 51? recursive calls??????????? 102? rows processed
???????? 52? recursive calls??????????? 104? rows processed
???????? 53? recursive calls??????????? 106? rows processed
???????? 54? recursive calls??????????? 108? rows processed
???????? 55? recursive calls??????????? 110? rows processed
???????? 56? recursive calls??????????? 112? rows processed
???????? 57? recursive calls??????????? 114? rows processed
???????? 58? recursive calls??????????? 116? rows processed
???????? 59? recursive calls??????????? 118? rows processed
???????? 60? recursive calls??????????? 120? rows processed
???????? 61? recursive calls??????????? 122? rows processed
???????? 62? recursive calls??????????? 124? rows processed
???????? 63? recursive calls??????????? 126? rows processed
???????? 64? recursive calls??????????? 128? rows processed
???????? 65? recursive calls??????????? 130? rows processed
???????? 66? recursive calls??????????? 132? rows processed
???????? 67? recursive calls??????????? 134? rows processed
???????? 68? recursive calls??????????? 136? rows processed
???????? 69? recursive calls??????????? 138? rows processed
???????? 70? recursive calls??????????? 140? rows processed
???????? 71? recursive calls??????????? 142? rows processed
???????? 72? recursive calls??????????? 144? rows processed
???????? 73? recursive calls??????????? 146? rows processed
???????? 74? recursive calls??????????? 148? rows processed
???????? 76? recursive calls??????????? 150? rows processed
???????? 77? recursive calls??????????? 152? rows processed
???????? 78? recursive calls??????????? 154? rows processed
???????? 79? recursive calls??????????? 156? rows processed
???????? 80? recursive calls??????????? 158? rows processed
???????? 81? recursive calls??????????? 160? rows processed
???????? 82? recursive calls??????????? 162? rows processed
???????? 83? recursive calls??????????? 164? rows processed
???????? 84? recursive calls??????????? 166? rows processed
???????? 86? recursive calls??????????? 168? rows processed
???????? 87? recursive calls??????????? 170? rows processed
???????? 88? recursive calls??????????? 172? rows processed
???????? 90? recursive calls??????????? 174? rows processed
???????? 91? recursive calls??????????? 176? rows processed
???????? 93? recursive calls??????????? 178? rows processed
???????? 94? recursive calls??????????? 180? rows processed
???????? 95? recursive calls??????????? 182? rows processed
???????? 96? recursive calls??????????? 184? rows processed
???????? 98? recursive calls??????????? 186? rows processed
???????? 99? recursive calls??????????? 188? rows processed
??????? 100? recursive calls??????????? 190? rows processed
??????? 102? recursive calls??????????? 192? rows processed
??????? 103? recursive calls??????????? 194? rows processed
??????? 104? recursive calls??????????? 196? rows processed
??????? 105? recursive calls??????????? 198? rows processed
??????? 106? recursive calls??????????? 200? rows processed
??????? 107? recursive calls??????????? 202? rows processed
??????? 108? recursive calls??????????? 204? rows processed
??????? 110? recursive calls??????????? 206? rows processed
??????? 112? recursive calls??????????? 208? rows processed
??????? 113? recursive calls??????????? 210? rows processed
??????? 114? recursive calls??????????? 212? rows processed
??????? 115? recursive calls??????????? 214? rows processed
??????? 116? recursive calls??????????? 216? rows processed
??????? 118? recursive calls??????????? 218? rows processed
??????? 119? recursive calls??????????? 220? rows processed
??????? 120? recursive calls??????????? 222? rows processed
??????? 121? recursive calls??????????? 224? rows processed
??????? 122? recursive calls??????????? 226? rows processed
??????? 123? recursive calls??????????? 228? rows processed
??????? 124? recursive calls??????????? 230? rows processed
??????? 125? recursive calls??????????? 232? rows processed
??????? 126? recursive calls??????????? 234? rows processed
??????? 127? recursive calls??????????? 236? rows processed
??????? 128? recursive calls??????????? 238? rows processed
??????? 129? recursive calls??????????? 240? rows processed
??????? 130? recursive calls??????????? 242? rows processed
??????? 132? recursive calls??????????? 244? rows processed
??????? 133? recursive calls??????????? 246? rows processed
??????? 134? recursive calls??????????? 248? rows processed
??????? 135? recursive calls??????????? 250? rows processed
??????? 136? recursive calls??????????? 252? rows processed
??????? 137? recursive calls??????????? 254? rows processed
??????? 138? recursive calls??????????? 256? rows processed
??????? 139? recursive calls??????????? 258? rows processed
??????? 140? recursive calls??????????? 260? rows processed
??????? 141? recursive calls??????????? 262? rows processed
??????? 142? recursive calls??????????? 264? rows processed
??????? 143? recursive calls??????????? 266? rows processed
??????? 144? recursive calls??????????? 268? rows processed
??????? 145? recursive calls??????????? 270? rows processed
??????? 146? recursive calls??????????? 272? rows processed
??????? 147? recursive calls??????????? 274? rows processed
??????? 148? recursive calls??????????? 276? rows processed
??????? 150? recursive calls??????????? 278? rows processed
??????? 151? recursive calls??????????? 280? rows processed
??????? 152? recursive calls??????????? 282? rows processed
??????? 153? recursive calls??????????? 284? rows processed
??????? 154? recursive calls??????????? 286? rows processed
??????? 155? recursive calls??????????? 288? rows processed
??????? 156? recursive calls??????????? 290? rows processed
??????? 157? recursive calls??????????? 292? rows processed
??????? 158? recursive calls??????????? 294? rows processed
??????? 159? recursive calls??????????? 296? rows processed
??????? 160? recursive calls??????????? 298? rows processed
??????? 161? recursive calls??????????? 300? rows processed
??????? 162? recursive calls??????????? 302? rows processed
??????? 164? recursive calls??????????? 304? rows processed
??????? 165? recursive calls??????????? 306? rows processed
??????? 166? recursive calls??????????? 308? rows processed
??????? 167? recursive calls??????????? 310? rows processed
??????? 168? recursive calls??????????? 312? rows processed
??????? 169? recursive calls??????????? 314? rows processed
??????? 170? recursive calls??????????? 316? rows processed
??????? 171? recursive calls??????????? 318? rows processed
??????? 172? recursive calls??????????? 320? rows processed
??????? 173? recursive calls??????????? 322? rows processed
??????? 174? recursive calls??????????? 324? rows processed
??????? 176? recursive calls??????????? 326? rows processed
??????? 177? recursive calls??????????? 328? rows processed
??????? 178? recursive calls??????????? 330? rows processed
??????? 179? recursive calls??????????? 332? rows processed
??????? 180? recursive calls??????????? 334? rows processed
??????? 181? recursive calls??????????? 336? rows processed
??????? 183? recursive calls??????????? 338? rows processed
??????? 184? recursive calls??????????? 340? rows processed
??????? 186? recursive calls??????????? 342? rows processed
??????? 187? recursive calls??????????? 344? rows processed
??????? 188? recursive calls??????????? 346? rows processed
??????? 189? recursive calls??????????? 348? rows processed
??????? 190? recursive calls??????????? 350? rows processed
??????? 192? recursive calls??????????? 352? rows processed
??????? 193? recursive calls??????????? 354? rows processed
??????? 194? recursive calls??????????? 356? rows processed
??????? 195? recursive calls??????????? 358? rows processed
??????? 196? recursive calls??????????? 360? rows processed
??????? 197? recursive calls??????????? 362? rows processed
??????? 198? recursive calls??????????? 364? rows processed
??????? 199? recursive calls??????????? 366? rows processed
??????? 200? recursive calls??????????? 368? rows processed
??????? 201? recursive calls??????????? 370? rows processed
??????? 202? recursive calls??????????? 372? rows processed
??????? 203? recursive calls??????????? 374? rows processed
??????? 204? recursive calls??????????? 376? rows processed
??????? 205? recursive calls??????????? 378? rows processed
??????? 206? recursive calls??????????? 380? rows processed
??????? 207? recursive calls??????????? 382? rows processed
??????? 208? recursive calls??????????? 384? rows processed
??????? 210? recursive calls??????????? 386? rows processed
??????? 211? recursive calls??????????? 388? rows processed
??????? 213? recursive calls??????????? 390? rows processed
??????? 215? recursive calls??????????? 392? rows processed
??????? 216? recursive calls??????????? 394? rows processed
??????? 217? recursive calls??????????? 396? rows processed
??????? 218? recursive calls??????????? 398? rows processed
??????? 219? recursive calls??????????? 400? rows processed
??????? 220? recursive calls??????????? 402? rows processed
??????? 221? recursive calls??????????? 404? rows processed
??????? 222? recursive calls??????????? 406? rows processed
??????? 223? recursive calls??????????? 408? rows processed
??????? 224? recursive calls??????????? 410? rows processed
??????? 226? recursive calls??????????? 412? rows processed
??????? 227? recursive calls??????????? 414? rows processed
??????? 228? recursive calls??????????? 416? rows processed
??????? 229? recursive calls??????????? 418? rows processed
??????? 230? recursive calls??????????? 420? rows processed
??????? 231? recursive calls??????????? 422? rows processed
??????? 232? recursive calls??????????? 424? rows processed
??????? 233? recursive calls??????????? 426? rows processed
??????? 234? recursive calls??????????? 428? rows processed
??????? 235? recursive calls??????????? 430? rows processed
??????? 237? recursive calls??????????? 432? rows processed
??????? 238? recursive calls??????????? 434? rows processed
??????? 239? recursive calls??????????? 436? rows processed
??????? 240? recursive calls??????????? 438? rows processed
??????? 241? recursive calls??????????? 440? rows processed
??????? 242? recursive calls??????????? 442? rows processed
??????? 243? recursive calls??????????? 444? rows processed
??????? 244? recursive calls??????????? 446? rows processed
??????? 245? recursive calls??????????? 448? rows processed
??????? 246? recursive calls??????????? 450? rows processed
??????? 247? recursive calls??????????? 452? rows processed
??????? 248? recursive calls??????????? 454? rows processed
??????? 250? recursive calls??????????? 456? rows processed
??????? 251? recursive calls??????????? 458? rows processed
??????? 252? recursive calls??????????? 460? rows processed
??????? 254? recursive calls??????????? 462? rows processed
??????? 255? recursive calls??????????? 464? rows processed
??????? 256? recursive calls??????????? 466? rows processed
??????? 258? recursive calls??????????? 468? rows processed
??????? 259? recursive calls??????????? 470? rows processed
??????? 260? recursive calls??????????? 472? rows processed
??????? 261? recursive calls??????????? 474? rows processed
??????? 262? recursive calls??????????? 476? rows processed
??????? 263? recursive calls??????????? 478? rows processed
??????? 264? recursive calls??????????? 480? rows processed
??????? 265? recursive calls??????????? 482? rows processed
??????? 266? recursive calls??????????? 484? rows processed
??????? 267? recursive calls??????????? 486? rows processed
??????? 269? recursive calls??????????? 488? rows processed
??????? 270? recursive calls??????????? 490? rows processed
??????? 272? recursive calls??????????? 492? rows processed
??????? 273? recursive calls??????????? 494? rows processed
??????? 274? recursive calls??????????? 496? rows processed
??????? 275? recursive calls??????????? 498? rows processed
??????? 276? recursive calls??????????? 500? rows processed
??????? 277? recursive calls??????????? 502? rows processed
??????? 278? recursive calls??????????? 504? rows processed
??????? 279? recursive calls??????????? 506? rows processed
??????? 281? recursive calls??????????? 508? rows processed
??????? 282? recursive calls??????????? 510? rows processed

--//取出數字
$ egrep 'recursive calls|rows processed' az.txt | paste - - | cut -c9-11,37-40

SCOTT@book> create table t1 ( a number ,b number);
Table created.

--//改寫成inert插入表t1.
SELECT id2, r, rp
? FROM (? SELECT b / 2 id2, a r, LAG (a) OVER (ORDER BY b) rp
??????????? FROM t1
??????? ORDER BY a)
WHERE r - rp >= 2;
ID2|R|RP
75|76|74
84|86|84
87|90|88
89|93|91
93|98|96
96|102|100
103|110|108
104|112|110
109|118|116
122|132|130
139|150|148
152|164|162
163|176|174
169|183|181
171|186|184
176|192|190
193|210|208
195|213|211
196|215|213
206|226|224
216|237|235
228|250|248
231|254|252
234|258|256
244|269|267
246|272|270
254|281|279

4.總結:
亂,好多概念不好理解.

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/451614.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/451614.shtml
英文地址,請注明出處:http://en.pswp.cn/news/451614.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

ODP 使用 ArrayBind 時可能會遇到的巨坑 'System.IConvertible' 的解決方法

Unable to cast object of type System.Nullable1[System.Int16][] to type System.IConvertible 一段代碼99%不會出錯&#xff0c;0.1%會報上邊的錯&#xff0c;debug費了老鼻子時間&#xff0c;發現此坑很深。異常是 cmd.ExecuteNonQuery() 拋的&#xff0c;實際是 para.Valu…

eclipse快速定位到錯誤處

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程 以前都是按著滾動條往下拉&#xff0c;找到錯誤的地方&#xff0c;有時比較多的時候就很麻煩。 其實eclipse是可以直接快速定位的&#x…

C語言中的“”和“”

先說左移,左移就是把一個數的所有位都向左移動若干位,在C中用<<運算符.例如: int i 1; i i << 2; //把i里的值左移2位 也就是說,1的2進制是000...0001(這里1前面0的個數和int的位數有關,32位機器,gcc里有31個0),左移2位之后變成 000...0100,也就是10進制的4,所以…

網站性能優化的三重境界

這篇文章是關于網站性能優化體驗的&#xff0c;性能優化是一個復雜的話題&#xff0c;牽涉的東西非常多&#xff0c;我只是按照我的理解列出了性能優化整個過程中需要考慮的種種因素。點到為止&#xff0c;包含的內容以淺顯的介紹為主&#xff0c;如果你有見解能告知我那再好不…

Linux使用RSA實現免密登錄(原理)

參考文獻Linux密鑰rsa加密原理和ssh使用密鑰實現免密碼登錄 感謝作者分享&#xff01;

PYTHON 爬蟲筆記十一:Scrapy框架的基本使用

Scrapy框架詳解及其基本使用 scrapy框架原理 Scrapy是一個為了爬取網站數據&#xff0c;提取結構性數據而編寫的應用框架。 其可以應用在數據挖掘&#xff0c;信息處理或存儲歷史數據等一系列的程序中。其最初是為了頁面抓取 (更確切來說, 網絡抓取 )所設計的&#xff0c; 也可…

java設計把兩個字符串的值交換 而不使用中間變量

public class Test {public static void main(String[] args) {String s1 "aaa";String s2 "cccx";s1 s1 s2;s2 s1.substring(0, s1.length()-s2.length());s1 s1.substring(s2.length());System.out.println(s1" - "s2);}}

服務器返回值 解釋 ajax提交方式 后臺數據刷進前端

轉載于:https://www.cnblogs.com/liuliang389897172/p/9120715.html

no typehandler found for property XXXX 解決

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 1. ssm框架下 啟動服務報錯如題。 2. 原因&#xff1a; 我的情況是&#xff0c;代碼中實體屬性映射書寫和數據庫字段名字不一致。 數據…

C++主流預處理,編譯和鏈接過程

在C的程序的編寫過程中&#xff0c;基本上都碰到過LNK2005的錯誤吧&#xff0c;下面就針對這個問題詳細分析&#xff1a;首先&#xff0c;預處理階段&#xff1a;這一過程&#xff0c;主要針對#include和#define進行處理&#xff0c;具體過程如下&#xff1a;對于cpp文件中經常…

shell中sed -i特殊字符

可參考文獻&#xff1a; Linux生產環境上&#xff0c;最常用的一套“sed“技巧 看懂shell中的各種語句

Win10遠程桌面提示你的憑據不工作的處理方法

需要確保在組策略編輯器&#xff08;WinR 輸入 gpedit.msc &#xff09;中計算機配置->Windows設置->安全設置->本地策略->安全選項->右側的網絡訪問:本地帳戶的共享和安全模型。修改為使用經典模式即可&#xff01;

子網掩碼255.255.0.0與255.255.255.0的區別

先介紹子網掩碼&#xff1a;子網掩碼&#xff0c;是一種用來指明一個IP地址的哪些位標識的是主機所在的子網&#xff0c;以及哪些位標識的是主機的位掩碼。子網掩碼不能單獨存在&#xff0c;它必須結合IP地址一起使用。子網掩碼只有一個作用&#xff0c;就是將某個IP地址劃分成…

日期格式不符合要求:Unparseable date: quot;3e8a4d83533744c698216535a65850c0quot;

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 1. 報錯如題 2. 原因&#xff1a;使用token 記錄當前登陸用戶&#xff0c;token值已經過期。 HttpClientUtil.doPost&#xff08;&…

Spring中都用到了哪些設計模式?

Spring 框架中用到了哪些設計模式&#xff1a; 工廠設計模式 : Spring使用工廠模式通過 BeanFactory、ApplicationContext 創建 bean 對象。 代理設計模式 : Spring AOP 功能的實現。 單例設計模式 : Spring 中的 Bean 默認都是單例的。 模板方法模式 : Spring 中 jdbcTemplat…

解決火車票網上訂票難的方案

春運是最熱的話題&#xff0c;買火車票是最流行的事情&#xff1b;網上訂票給大家帶來了極大的便利&#xff0c;但是由于各種原因&#xff0c;網上訂票成功率很低&#xff0c;至少比在淘寶上買東西困難多了。在下不才&#xff0c;試圖提出其解決方案。 問題&#xff1a;并發訪問…

小程序支付成功后跳轉頁面失敗

在安卓報錯 relaunch:fail can not invoka lelaunch in background&#xff0c;ios正常&#xff0c;換成別的跳轉方式即可轉載于:https://www.cnblogs.com/wang-xing/p/9488961.html

linux 中 ~/. 是什么意思

~代表你的/home/用戶明目錄假設你的用戶名是x&#xff0c;那么~/就是/home/x/.是代表此目錄本身&#xff0c;但是一般可以不寫所以cd ~/. 和cd ~ 和cd ~/效果是一樣的但是.后面有東西又是另外一個問題&#xff0c;點在文件名頭部&#xff0c;代表一個隱藏文件~/.local是你的主目…

Nginx 啟動報錯 “/var/run/nginx/nginx.pid failed”

問題&#xff1a; 重啟虛擬機后&#xff0c;再次重啟nginx會報錯&#xff1a; open() "/var/run/nginx/nginx.pid" failed (2: No such file or directory) 解決方法&#xff1a; &#xff08;1&#xff09;進入 cd /usr/local/nginx/conf/ 目錄&#xff0c;編輯配置…

eclipse關閉討厭的菜單

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 1. 不知道動哪了&#xff0c;開啟了這個菜單&#xff1a; 2. 很感謝群友幫我找到關閉方法&#xff0c;點擊 如下 按鈕&#xff1a; 然后就…