2016-05-24 16:00
瞿鍇
T1
什么是高效
用更短的時(shí)間獲得相同的結(jié)果集
怎么查
又講了從公司到圓融的那個(gè)梗,呵呵噠~~~
怎么寫(xiě)
1、不要寫(xiě)select * 要寫(xiě)成具體的列名
表的字段可能會(huì)變多,但固定的業(yè)務(wù)需要查詢的字段通常是有限的固定的
2、testtable要寫(xiě)成testdb.dbo.testtable
拆庫(kù)方便(99%的原因);減少查表的時(shí)間(1%的原因)
Q:如果將來(lái)遷表了怎么辦?
A:庫(kù)名+表名賦給一個(gè)全局變量,遷表的時(shí)候改變?nèi)肿兞恐导纯?br>
3、加with(nolock)
降低事務(wù)隔離級(jí)別;但是會(huì)導(dǎo)致臟讀
4、SQL語(yǔ)句中不要存在隱式的數(shù)據(jù)類型轉(zhuǎn)換
隱式的數(shù)據(jù)類型轉(zhuǎn)換會(huì)導(dǎo)致索引失效,從而導(dǎo)致全表掃描,降低效率
5、不要有"%abc%",可以想辦法寫(xiě)成"abc%"去實(shí)現(xiàn)業(yè)務(wù)要求
因?yàn)楹笳呖梢杂盟饕?,而前者不?br>
6、條件里盡量不要使用函數(shù),但是輸出字段上可以使用函數(shù)
使用函數(shù)時(shí)會(huì)導(dǎo)致全表掃描
7、排序時(shí)盡量用主鍵
業(yè)務(wù)邏輯會(huì)影響查詢的效率嗎?
其實(shí)最后這部分內(nèi)容,主要是講了一個(gè)故事,想要表達(dá)的思想就是,程序員是有思想有主見(jiàn)的,而不是簡(jiǎn)單的翻譯者,在拿到UI的設(shè)計(jì)稿時(shí),不是簡(jiǎn)單的翻譯成程序或系統(tǒng),而是要帶著思考,去多問(wèn)幾個(gè)為什么,有意義嗎?
嗯,以上。