程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> Oracle數據庫終於支持R語言 發力數據挖掘

Oracle數據庫終於支持R語言 發力數據挖掘

編輯:Oracle數據庫基礎

記錄詳細的需求文檔

在寫SQL之前必須弄清楚需求, 具體要取什麼數據, 有些什麼具體的約束條件, 在數據倉庫環境中還可以考慮補上這個需求具體對應哪些報表, 對應的基礎表如何. 到開發環境的話, 可以考慮加上這條SQL服務於哪些業務(頁面),調用頻率如何.

不要重新制造輪子

對於一些已經比較成熟的解決方案,有比較現成的例子的SQL,要善於利用已有SQL,已有模板.

降低語句的復雜度

有些同學可能比較喜歡使用比較炫的技術,比較炫的SQL來解決問題. 但是要切記一點, 使用過於復雜過於新的技術, 如果不能在性能(以及其他方面)帶來好處的話, 只會使得這條SQL難於維護, 使得其他相關人員難於理解.

小心處理NULL

NULL在Oracle數據庫中是一個非常特別的值, 它不等於任何值, 所以如果你的SQL返回的值數量偏少,或者根本不對很可能就是使用NULL出現了問題..常見的情況是:

1. 查詢的時候直接使用條件 colx = xxx,而這個colx裡面是有NULL值的, 這種情況下查詢的返回結果是不會包含NULL值對應的記錄的, 如果要查詢出NULL對應的記錄, 需要使用 colx is null (is not null).

2. var 為null的時候, 在plsql中給var賦值, var := var + xxx;這種情況下var的值會一直是null的, 這一點需要特別注意, 我自己也犯過好幾次這個錯誤.

自己核對數據類型

在where條件裡面要仔細地核對數據類型, 由於隱形轉換的問題, 在數據類型錯誤的時候, Oracle無法正確使用索引, 可能會導致SQL運行非常慢.

小心處理重復數據

在需求明確的情況下, 如果你不在乎是否出現重復記錄, 或者明確知道不會出現重復數據的情況下, 盡量使用Union All而不是Union進行查詢, Union會涉及到昂貴的排序操作.

避免不必要的優化操作

SQL的性能調優可能非常有趣非常帶勁, 但是很多時候調優可能意義不大, 比如對於只會使用一次的查詢, 你可能很少在乎是1秒鐘結束還是2秒鐘結束..

不過一些基本的優化規則還是要用的:

只查詢你需要的字段, 而不要所有的查詢都是用select *來進行.

在通過索引來查詢更合適的時候, 盡量在查詢條件中指定有索引的字段來查詢. (在返回的記錄條數很少的時候, 使用索引一般都能更加快速的得到查詢結果.不要可以避免使用表連接. 關系數據庫就是為了表連接而設計的.

盡可能使用綁定變量

在開發環境使用的SQL語句盡量使用綁定變量, 這樣可以大大緩解Oracle數據庫解析SQL的消耗, 也可以大大提高數據庫的可擴展性.

使用源碼控制工具

最好使用CVS/SVN一類的源碼控制工具來管理你的SQL/PLSQL代碼, 這對於後期的維護有非常大的幫助, 也有助於其他人更好的理解你最初寫這條SQL的意圖.

測試,測試,測試.

在SQL寫好之後, 要深入的進行測試, 以確保其正常運行

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved