• <nav id="kggui"></nav>
  • <optgroup id="kggui"></optgroup>
  • <menu id="kggui"></menu><xmp id="kggui"><nav id="kggui"></nav>
    <menu id="kggui"><menu id="kggui"></menu></menu>
    <nav id="kggui"></nav>

    sql語句審核

    sql語句審核

    如何自動化完成SQL審核

    很多游戲項目都是通過每周更新大版本來維持用戶的粘性和活躍度,而更新版本必然伴隨著數據庫的新建create、改表alter的SQL。

    運維或者dba負責審核這類sql是否合理、高效,因為很多開發同事特別是經驗少的新人是不考慮sql性能、是否合乎MySQL的最佳實踐。

    經常很多建表語句漏加索引或者加錯索引(不滿足最左匹配等情況),需要等到開服后數據庫負載過高引起告警才發現問題。

    MySQL的配置中有一個日志是記錄沒有使用索引的sql,記錄進slow log日志中,不過實際使用過程中,的確存在著很多合理的不使用索引的情況,所以這個日志一般不打開。

    為了避免人工審閱的重復勞動,所以運維可以通過寫程序、腳本來自動審核sql,而審核的條件一般如下:

    1、表結構是否合法 //不合法當然不能通過

    2、表名、列名長度超過 16 //主要跟我們自己的授權有關系

    3、必須有 unsigned //業務最容易忘記添加,當然如果一定要負值,那么就走人工審核;

    4、必須為 InnoDB //當然了,我已經忘記還有MyISAM了,統計日志表除外

    5、int bigint(10) 不能小于 10 //大家見過int(1)的情況么?

    6、varchar 長度小于 3000 // 這也算是一個人為規定,沒有任何意義

    7、text 字段個數不能大于 3 //人為規定而已

    8、主鍵必須為 int 類型 //不int,真的會死人

    9、索引不能有重復 //見過key(id),key(id,uid)的情況嗎?

    10、索引個數不能大于 5 個(包括主鍵) //人為定義而已

    11、索引字段必須為 not null,并且有 default 值 //參照高性能那本書說的,其實不一定影響性能

    12、SQL 是否使用到索引 //不能用到索引的SQL,真的很慘

    13、SQL 中不能有 * //由于* 經常導致流量、O巨大,所以,也強制了

    14、自增字段必須為 int 或者 bigint //見過自增用smallint的嗎?然后一下就溢出了

    15、請不要使用MySQL的保留字(Reserved Words) //寫腳本,大家討厭符號么?

    開發提交sql后,會直接調用后端審核程序,程序根據以上規則,進行審核,就極大的降低了運維、DBA的工作量。

    當sql審核通過后,是否馬上執行?

    根據以下情況判斷:

    1、表小于10w行,小于10M空間大小,那么直接執行SQL;

    2、如果不滿足1,并且滿足percona online-schema-change條件,那么通過osc工具,進行在線修改;

    3、如果1、2都不行,走人工上線流程;

    存儲過程與SQL語句是怎樣的

    我的一位朋友說:他從臺灣知名技術作家李維先生的一本書中獲悉,如果用存儲過程封裝SQL語句,系統效率將有極大提升。

    他做過實驗!!! --我相信朋友做過實驗,盡管非親眼所見。不過我估計他的實驗有問題,那樣的實驗不但蒙蔽了他,也蒙蔽了李維先生(如果他的著作中的內容沒有被誤會),甚至更多的人。

    然而我必須拿出證據,方能使人信服。 后來遇到一個具體的問題:客戶端經常要向數據庫插入記錄。

    在J2EE中,一個 Entity Bean Home 的 create 方法調用中,一般就沒用存儲過程。朋友立馬在觀點上持反對意見( 可能是因為他暫時有來得及否決J2EE ),認為要是J2EE能夠將“插入記錄”諸如此類動作改為對存儲過程的調用就好了。

    我們因此再次發生爭論(我僅是反對朋友的看法,但也沒提出任何我自己的看法,因為要下一個結論是很不容易的)。最后我不得已而做了實驗,分別在 Oracle 10g 和 postgreSQL 8。

    0。1 上。

    實驗內容如下: A、建表腳本: create table ztest( fieldA integer primary key, fieldB varchar(128), fieldC varchar(128) ) B、客戶端請求 DBMS 執行的 insert SQL語句: insert into ztest values( ?1, ?2, ?3 ); -- ?1,?2,?3 將在運行時以合理的值替代之 C、客戶端調用的存儲過程(JDBC CallableStatement 調用): Oracle:(調用方式 call up_add(。 。

    。),) create or replace procedure up_add( fieldA integer, fieldB varchar, fieldC varchar ) is begin insert into ztest values( fieldA, fieldB, fieldC); end; postgreSQL:(客戶端調用方式 select uf_add(。

    ) ) CREATE OR REPLACE FUNCTION uf_add (integer, varchar, varchar) RETURNS void AS' begin insert into ztest values($1,$2,$3); return; end; 'LANGUAGE 'plpgsql' VOLATILE RETURNS NULL ON NULL INPUT SECURITY INVOKER; D、環境: postgreSQL:數據庫服務器與客戶端程序“都在本機”并“同時運行” Oracle: 獨立數據庫服務器(測試時始終有人在慢慢打字,應該對機器性能無影響) 測試: 通過不同方式( 即 請求DBMS執行SQL語句 和 調用DBMS邏輯等價的存儲過程)向測試表中連續加入 1024 記錄 經多次反復測試,得結果如下 postgreSQL: 兩種方式下,測試時間均為 21- 24 seconds 之間 (每個結果的測試環境一致) Oracle: 8次 SQL 執行請求分別用時(ms) 5422 4750 3875 3812 5672 3531 3484 3547 6次 存儲過程調用分別用時(ms) 4578 4500 6297 4219 4547 5734 (每個結果的測試環境一致)由此可知,存儲過程封裝簡單的 SQL 語句,效率相當,且可能更低。 但很多朋友的確得出結論:存儲過程的確比SQL快。

    為什么?---- 因為他們測試時寫了一個不具實際意義,同時也與SQL語句的“一次客戶端調用”不具可比性的測試用存儲過程。Oracle PL/SQL 描述方式如下,該方法一次調用就可以向數據表添加 1024 條記錄,連網絡通訊都省了。

    怪不得性能有“千倍差異”! create or replace procedure up_add( ) is declare n:integer; begin n := 0; while( n 它與客戶端一次提交單條 SQL 語句沒有可比性:當一次只需要向DBMS提交一條新記錄,要這個存儲過程干什么呢?。

    怎樣查出前臺正在發出的sql語句

    答:具體步驟如下: 軟件環境: 1、Windows 2000+ORACLE 8。

    1。6 2、ORACLE安裝路徑為:C:\ORANT實現方法: 可以用以下語句: select user_name,sql_text from v$open_cursor where sid in (select sid from (select sid,serial from v$session where status=''''ACTIVE''''))子查詢: select sid,serial from v$session where status=''''ACTIVE''''查出的是不活動的session的sid。

    SQL> desc v$open_cursor 名稱 空? 類型 ----------------------------- ------- SADDR RAW (4) SID NUMBER USER_NAME VARCHAR2(30) ADDRESS RAW (4) HASH_VALUE NUMBER SQL_TEXT VARCHAR2(60)。

    SQL語句UPDATE指令是什么

    我們有時候可能會需要修改表格中的資料。

    在這個時候,我們就需要用到 UPDATE 指令。這個指令的語法是: UPDATE "表格名" SET "欄位1" = [新值] WHERE {條件} 最容易了解這個語法的方式是透過一個例子。

    假設我們有以下的表格: Store_Information 表格 store_nameSalesDate Los Angeles$1500Jan-05-1999 San Diego$250Jan-07-1999 Los Angeles$300Jan-08-1999 Boston$700Jan-08-1999 我們發現說 Los Angeles 在 01/08/1999 的營業額實際上是 $500,而不是表格中所儲存的 $300,因此我們用以下的 SQL 來修改那一筆資料: UPDATE Store_Information SET Sales = 500 WHERE store_name = "Los Angeles" AND Date = "Jan-08-1999" 現在表格的內容變成: Store_Information 表格 store_nameSalesDate Los Angeles$1500Jan-05-1999 San Diego$250Jan-07-1999 Los Angeles$500Jan-08-1999 Boston$700Jan-08-1999 在這個例子中,只有一筆資料符合 WHERE 子句中的條件。 如果有多筆資料符合條件的話,每一筆符合條件的資料都會被修改的。

    我們也可以同時修改好幾個欄位。這語法如下: UPDATE "表格" SET "欄位1" = [值1], "欄位2" = [值2] WHERE {條件}。

    轉載請注明出處華閱文章網 » sql語句審核

    短句

    評價一個人的優點語句

    閱讀(267)

    評價一個人的優點以及缺點的句子有哪些評價一個人的優點的句子:1、有很高的領導藝術和很強的群眾精神。2、有極強的領導能力。3、有用心的工作態度,愿意和能夠在沒有監督的狀況下勤奮地工作。4、肯學習進取。5、上進心強又可靠,并且身體健

    短句

    山水美語句

    閱讀(352)

    形容“山水美”的句子有哪些1、水幾重呵,山幾重?水繞山環桂林城。是山城呵,是水城?都在青山綠水中。呵!此山此水入胸懷,此時此身何處來?2、千里鶯啼綠映紅,水村山郭酒旗風。南朝四百八十寺,多少樓臺煙雨中。---唐· 杜牧《江南春》3、蕩胸生層云

    短句

    簡約英語句子

    閱讀(323)

    簡短唯美的英語句子 Never frown, even when you are sad, because you never know who is falling in love with your smile. 縱然傷心,也不要愁眉不展,因為你不知是誰會愛

    短句

    第七天語句

    閱讀(230)

    《第七天》好詞好句好段 1.我的身體搖搖晃晃坐在那里,像是超重的貨船坐在波動的水面上。2.我的身體像是一棵安靜的樹,我的記憶在那個離去的世界里馬拉松似的慢慢奔跑。3.我

    短句

    紅棗語句

    閱讀(294)

    形容紅棗的句子 1. 家鄉的棗兒,皮很薄,熟透了簡直就像一兜蜜,叫人越吃心越甜。2. 鄰居老奶奶家有一棵面棗樹,紅得早,我也頑皮的從胡同里,扒著墻頭,偷偷地摘幾個嘗嘗。3. 我們在等待列隊去課堂聽課前的時間,偷偷用課本從枝頭打下來一兩顆圓熟的

    短句

    sql語句刪除表格

    閱讀(243)

    刪除一個表的sql 語句怎么寫啊 使用drop語句,drop table (需要刪除表的名字)。 drop是刪除整個表,delete是刪除表的內容。 drop語句的作用:刪除內容和定義,釋放空間,簡單來說就是把整個表去掉。以后要新增數據是不可能的,除非新增一

    短句

    卸妝語句

    閱讀(262)

    常用的卸妝產品有哪些 卸妝油:方便快速、卸妝徹底。 卸妝凝膠:凝膠類的卸妝產品,可說是 卸妝油的改良版,比油質更清爽的凝膠質地, 讓卸妝感覺更舒適。 卸妝乳霜:卸妝乳霜是歷史最

    短句

    cf經典語句

    閱讀(219)

    CF經典語句 CF經典語句 1.進個房間先問一句“有GUA嗎?”,已經成為日常用語。 2.“誰開GUA,誰死全家,誰亂T人,也死全家。”已經成為發誓的標準套話。 3.“11,11,11,11”已經成為出現率最高的阿拉伯數字。 4.“幽靈開瞬移啦,警有GUA的

    短句

    外灘語句

    閱讀(224)

    求上海外灘的風景描寫語句 1、外灘城市雕塑群由"浦江之光"、"帆"、"風"三座不銹鋼雕塑組成,位于外灘綠色長廊中,在陽光下熠熠生輝"浦江之光"造型別具一格,用豎向的水波和水珠

    短句

    申論語句理解

    閱讀(196)

    公務員申論考試有哪些比較有用的語句申論:把頭腦變厚,把思維變薄我發現考生對待申論的態度只有兩種:1種是全盤放棄,認為申論是長期積累的結果,短期的學習不會取得質的提高;另一種是瘋狂的學習,恨不得在最短的時間內掌握最多的信息,盡可能的快速

    短句

    帝王權術經典語句

    閱讀(846)

    古代帝王權術 1.虛榮心特重,狂熱追求“流芳千古”,導致他很多做法都有很重的“做秀”嫌疑,有時候讓人覺得他太虛偽了。比如他對魏徵不遺余力的吹捧,人為地把老魏“大樹特樹”

    短句

    覺醒語句

    閱讀(297)

    覺悟的句子大全 覺悟的句子1. 人生是美好的,又是短暫的。有的人生寂寞,有的人生多彩,不同的人有著不同的人生追求;人生是一條沒有回程的單行線,每個人都用自己的所有時光前行。

    短句

    臘八節語句

    閱讀(240)

    臘八節詩句 諺語 一,關于臘八節的詩句有哪些?1、今朝佛粥更相饋,更覺江村節物新2、《臘八粥》一陽初復中大呂,谷粟為粥和豆煮。應節獻佛矢心虔,默祝金光濟眾普。盈幾馨香細細浮,堆盤果蔬紛紛聚。共賞佳品達妙門,妙門色相傳蓮炬。童稚飽腹慶升

    短句

    水瓶座語句

    閱讀(245)

    贊美水瓶座的句子 1、你抱著別人笑,我抱著自己哭。2、深藍的不是天空不是海洋不是氧氣,是我的強詞奪理不愿放棄你的決定。3、有時候,我在乎的不是你所說的,而是那些你沒有說的

    短句

    評價一個人的優點語句

    閱讀(267)

    評價一個人的優點以及缺點的句子有哪些評價一個人的優點的句子:1、有很高的領導藝術和很強的群眾精神。2、有極強的領導能力。3、有用心的工作態度,愿意和能夠在沒有監督的狀況下勤奮地工作。4、肯學習進取。5、上進心強又可靠,并且身體健

    短句

    簡約英語句子

    閱讀(323)

    簡短唯美的英語句子 Never frown, even when you are sad, because you never know who is falling in love with your smile. 縱然傷心,也不要愁眉不展,因為你不知是誰會愛

    短句

    山水美語句

    閱讀(352)

    形容“山水美”的句子有哪些1、水幾重呵,山幾重?水繞山環桂林城。是山城呵,是水城?都在青山綠水中。呵!此山此水入胸懷,此時此身何處來?2、千里鶯啼綠映紅,水村山郭酒旗風。南朝四百八十寺,多少樓臺煙雨中。---唐· 杜牧《江南春》3、蕩胸生層云

    短句

    紅棗語句

    閱讀(294)

    形容紅棗的句子 1. 家鄉的棗兒,皮很薄,熟透了簡直就像一兜蜜,叫人越吃心越甜。2. 鄰居老奶奶家有一棵面棗樹,紅得早,我也頑皮的從胡同里,扒著墻頭,偷偷地摘幾個嘗嘗。3. 我們在等待列隊去課堂聽課前的時間,偷偷用課本從枝頭打下來一兩顆圓熟的

    短句

    第七天語句

    閱讀(230)

    《第七天》好詞好句好段 1.我的身體搖搖晃晃坐在那里,像是超重的貨船坐在波動的水面上。2.我的身體像是一棵安靜的樹,我的記憶在那個離去的世界里馬拉松似的慢慢奔跑。3.我

    短句

    sql語句刪除表格

    閱讀(243)

    刪除一個表的sql 語句怎么寫啊 使用drop語句,drop table (需要刪除表的名字)。 drop是刪除整個表,delete是刪除表的內容。 drop語句的作用:刪除內容和定義,釋放空間,簡單來說就是把整個表去掉。以后要新增數據是不可能的,除非新增一

    短句

    卸妝語句

    閱讀(262)

    常用的卸妝產品有哪些 卸妝油:方便快速、卸妝徹底。 卸妝凝膠:凝膠類的卸妝產品,可說是 卸妝油的改良版,比油質更清爽的凝膠質地, 讓卸妝感覺更舒適。 卸妝乳霜:卸妝乳霜是歷史最

    短句

    圈子的語句

    閱讀(221)

    非主流經典語錄把圈子縮小一點 不管結果會如何,如何,我只想要在這里下車、我不在乎自己究竟多傷痕累累,我只在乎你今后有誰陪花 前 月 下 、俄 對 邇 的 想 念 從 未 停 止

    久久热在线视频