Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
客戶問:我們覺得oracle數據庫運行的sql有點慢,是不是遷移到分布式數據庫會快一些?
老虎劉答:一般情況下,oracle數據庫能滿足大部分場景的業務需求.建議對問題系統做個性能分析,看看是不是做個優化就能解決問題.到目前為止,本人經手的絕大部分系統都可以通過性能優化(主要是SQL優化)達到預期性能指標,不需要遷移到分布式數據庫.
下面列舉幾個SQL優化案例.
案例1: 設計與SQL寫法
從下圖的執行計劃可以看到,這個sql執行了20+小時還沒有執行完,中間結果集高達42.95億,而涉及的表記錄數只有85條.
sql文本:
select *
from app
where app.='2'
and app. in
(select (, '[^,]+', 1, level)
from ---這個表只有85條記錄
where ='0000001' ----是主鍵
connect by level = TO_DATE(,'')= 'I')
OR
( = 'F' < 3)
AND ( = '1' is null);
表上存在一個三字段聯合索引: (,,). 但是這個索引沒有被使用(因為如果使用這個索引,SQL執行效率會更差), 執行計劃使用的是全表掃描.
測試人員根據我的建議, 在測試環境里為表新建了一個兩字段聯合索引(這里省略了查看相關字段數據分布的步驟): ( , ),反饋如下:
一個簡單的索引調整,效率提升2.5萬倍.sql執行效率的提升,不但提升了客戶感知,同時也大大降低了資源的使用(CPU/存儲/內存).
點評:
這個sql如果放到分布式數據庫,肯定也能有幾倍的提升,但是消耗的資源還是差不多的. 聯合索引選哪些字段做組合,字段的先后順序都是大有講究的.
案例4:寫法與索引配合
這是oracle原廠大師(國內官方公眾號有很多他的視頻課程)最近出的一個小題目:
我理解的:即符合里面的條件,較少
我理解的history: end_dt
你的選擇是?
(這里讀者可以思考一下再往下看)
這種sql,很多開發人員可能不管謂詞字段的數據分布情況,直接創建(,end_dt)兩字段聯合索引,因為有上面的條件,這個索引是低效的,優化器可能寧可全表掃描,也不用這個索引.
我想出題者的本意應該是讓大家選"",但是我認為原sql的寫法, 沒有合適的索引能實現優化的目的,因為沒法創建nvl(end_dt,sysdate+1)這樣的函數索引.
我給出的優化方法是需要改寫,然后再配合索引:
改寫SQL,將SQL改成
>=(end_dt>l);
創建(end_dt,0)聯合索引.不需要字段的參與,因為
(全文完)
”是將評分點對應到
投標文件的制作與上傳指南
一、安裝投標工具
二、點擊【新建工程】-瀏覽按鈕選擇下載好的招標文件后點擊【確定】,點擊確定按鈕后會跳出來“CA認證提示”,點擊確定, 如果使用ca鎖則選擇“插入CA認證”,如果使用標證通(手機版CA)則選擇“手機掃碼認證”。
三、導入招標文件后,頁面左邊分別展示“瀏覽招標文件”、“投標文件格式”、“生成投標文件格式”三大模塊。
其中“瀏覽招標文件”用于瀏覽導入的招標文件,“投標文件格式”用于制作投標文件,“生成投標文件”用于生成文件。
四、點擊打開“投標文件格式”,選中“正文內容”,同時右鍵點擊,會跳出“導入文件”、“重新制作”按鈕。選中“導入文件”按鈕將word格式或者pdf格式的投標文件導入。
五、點擊“正文內容”左邊“+”下拉選項展示的是招標文件的評標辦法的評分項和評分點
六、鼠標右擊評分點會展示“對應文檔位置”、“刪除節點對應” 。其中選中“對應文檔位置”是將評分點對應到word格式或者pdf格式的投標文件的具體位置,便于評委在評標的時候瀏覽?!皠h除節點對應”即刪除掉原本對應的位置,可重新選擇對應位置。
七、將投標文件位置全部對應完畢后進入“生成投標文件”環節。首先是轉換投標文件,可點擊“批量轉換”,可單獨點擊文檔對應的“轉換”按鈕進行轉換。
八、轉換完成后對標書進行簽章。點擊“標書簽章”進入簽章頁面,點擊“電子簽章”輸入鎖密碼進行蓋章。
十一、簽章完畢后,預覽標書確保內容無誤后(預覽標書不顯示蓋的簽章)即可點擊“生成標書”。點擊生成標書時會跳出填寫投標總價提示(部分評標辦法無需填寫)。填寫完點擊“確定”按鈕。
十二、點擊“確定”按鈕后會跳出來輸入鎖密碼提示,輸入完密碼等待系統自動生成標書
十三、系統生成完畢標書后會跳出來選擇文件夾的提示,選擇相應的文件夾保存標書即可。系統生成的標書有兩份,一份加密標書、一份不加密標書。至此,標書制作完畢。
十四、投標文件制作完畢后,登錄分散采購平臺,點擊【我的項目】菜單,找到對應項目點擊“項目工作臺“,點擊“上傳投標文件”菜單上傳投標文件。
*請認真填寫需求信息,我們會在24小時內與您取得聯系。