某天搬砖搬得热火朝天,突然一个电话打来,业务部门反映,某功能特别卡,简直不能忍。有多慢?大概90s。是突然很慢?还是之前就很慢?之前就有点慢,但是没有这么慢。好了,不扯犊子了,直接查看源码:
public DataSet GetStockByUserAndTime(string warehouseID, string userID, int minutes) { SqlItem sqlItem = new SqlItem(); var searchTime = DateTime.Now.AddMinutes(0 - minutes); sqlItem.SqlStr = @" select t.manifest_no from STOCK_IN_OUT t where t.update_time >:searchTime and t.update_user=:userID and t.warehouse_id = :warehouseID and t.action_type = 0 "; sqlItem.AppendParameter("searchTime", searchTime); sqlItem.AppendParameter("userID", userID); sqlItem.AppendParameter("warehouseID", warehouseID); return GetDataSet(sqlItem); }
public DataSet GetStockByUserAndTime(string warehouseID, string userID, int minutes) { SqlItem sqlItem = new SqlItem(); var searchTime = DateTime.Now.AddMinutes(0 - minutes).ToString("yyyy-MM-dd HH:mm:ss"); sqlItem.SqlStr = @" select t.manifest_no from STOCK_IN_OUT t where t.update_time >to_date(:searchTime,'yyyy-mm-dd hh24:mi:ss') and t.update_user=:userID and t.warehouse_id = :warehouseID and t.action_type = 0 "; sqlItem.AppendParameter("searchTime", searchTime); sqlItem.AppendParameter("userID", userID); sqlItem.AppendParameter("warehouseID", warehouseID); return GetDataSet(sqlItem); }
调试了一下,只用了223ms,果然是日期格式的原因。
之前为什么没有出现这个问题,和数据库小组沟通,数据库小组:在日期转换的时候,尽量传入string类型,在sql语句里面转换,可能是oralce升级,驱动原因导致的。我:恩,这个锅应该让驱动来背。总之,日期格式要留意啊。