某天搬磚搬得熱火朝天,突然乙個**打來,業務部門反映,某功能特別卡,簡直不能忍。有多慢?大概90s。是突然很慢?還是之前就很慢?之前就有點慢,但是沒有這麼慢。好了,不扯犢子了,直接檢視原始碼:
public dataset getstockbyuserandtime(string warehouseid, string userid, intminutes)
可以看出總共才乙個表,用pl/sq檢視一下表,發現改表資料量很大,每天都要新增10幾萬條資料,並且update_time欄位沒有建立索引,所以初步判斷是未建立索引導致,急忙聯絡一下資料庫小組,給我某庫的stock_in_out表加個索引唄?,加完了索引,居然還是慢,到底什麼導致的?
會不會是網路傳輸慢,但是其它類似的方法依然很快,所以排除。
是不是日期格式原因導致的?原傳入「searchtime」引數直接是日期格式,而不是string型別,故可以將日期格式轉換成string型別傳入,在sql語句裡面再轉換成日期格式,改成如下
public dataset getstockbyuserandtime(string warehouseid, string userid, intminutes)
除錯了一下,只用了223ms,果然是日期格式的原因。
之前為什麼沒有出現這個問題,和資料庫小組溝通,資料庫小組:在日期轉換的時候,盡量傳入string型別,在sql語句裡面轉換,可能是oralce公升級,驅動原因導致的。我:恩,這個鍋應該讓驅動來背。總之,日期格式要留意啊。
記一次postgresql查詢優化
一 場景介紹 1 需求 根據schema 1中多表聯查結果,對相應schema 2中資料進行刪除操作。2 表結構 模式表名 表結構schema 1 table 1 id varchar 32 pk主鍵 table 2 id varchar 32 pk主鍵 table 1 id varchar 32 ...
記一次資料提取過程
某次需要乙個中文電碼本,然而網上搜到的要麼收費,要麼不行,所以打算自己做乙份,但是看了下資料量實在太大只能放棄,那麼怎麼辦呢。收到乙個軟體teleccodetool 可以查詢漢字對應的電碼,隨即準備提取,過程記錄如下。無關的檔案已經刪除了,只剩三個核心檔案 乙個個看,第乙個配置檔案開啟沒啥有用的訊息...
記一次資料越界的事
最近在作乙個基於聯盛德的 w600晶元進行ayla雲移植時,用到了作業系統的tick獲取,獲取函式如下 u32 clock ms void else return ms 測試 現了奇怪的問題,系統走著走著就不發心跳包了,最後跟蹤後發現是上面這個函式返回的值突然變零 我們預想上面的返回值會一直增加,至...