电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

影響SQL server性能的關鍵三個方面

瀏覽:152日期:2023-10-28 17:13:24
1 邏輯數據庫和表的設計數據庫的邏輯設計、包括表與表之間的關系是優化關系型數據庫性能的核心。一個好的邏輯數據庫設計可以為優化數據庫和應用程序打下良好的基礎。標準化的數據庫邏輯設計包括用多的、有相互關系的窄表來代替很多列的長數據表。下面是一些使用標準化表的一些好處。A:由于表窄,因此可以使排序和建立索引更為迅速B:由于多表,所以多鏃的索引成為可能C:更窄更緊湊的索引D:每個表中可以有少一些的索引,因此可以提高insert update delete等的速度,因為這些操作在索引多的情況下會對系統性能產生很大的影響E:更少的空值和更少的多余值,增加了數據庫的緊湊性由于標準化,所以會增加了在獲取數據時引用表的數目和其間的連接關系的復雜性。太多的表和復雜的連接關系會降低服務器的性能,因此在這兩者之間需要綜合考慮。定義具有相關關系的主鍵和外來鍵時應該注意的事項主要是:用于連接多表的主鍵和參考的鍵要有相同的數據類型。2 索引的設計A:盡量避免表掃描檢查你的查詢語句的where子句,因為這是優化器重要關注的地方。包含在where里面的每一列(column)都是可能的侯選索引,為能達到最優的性能,考慮在下面給出的例子:對于在where子句中給出了column1這個列。下面的兩個條件可以提高索引的優化查詢性能!第一:在表中的column1列上有一個單索引第二:在表中有多索引,但是column1是第一個索引的列避免定義多索引而column1是第二個或后面的索引,這樣的索引不能優化服務器性能例如:下面的例子用了pubs數據庫。SELECT au_id, au_lname, au_fname FROM authorsWHERE au_lname = ’White’按下面幾個列上建立的索引將會是對優化器有用的索引?au_lname?au_lname, au_fname而在下面幾個列上建立的索引將不會對優化器起到好的作用?au_address?au_fname, au_lname考慮使用窄的索引在一個或兩個列上,窄索引比多索引和復合索引更能有效。用窄的索引,在每一頁上將會有更多的行和更少的索引級別(相對與多索引和復合索引而言),這將推進系統性能。對于多列索引,SQL Server維持一個在所有列的索引上的密度統計(用于聯合)和在第一個索引上的histogram(柱狀圖)統計。根據統計結果,如果在復合索引上的第一個索引很少被選擇使用,那么優化器對很多查詢請求將不會使用索引。有用的索引會提高select語句的性能,包括insert,uodate,delete。但是,由于改變一個表的內容,將會影響索引。每一個insert,update,delete語句將會使性能下降一些。實驗表明,不要在一個單表上用大量的索引,不要在共享的列上(指在多表中用了參考約束)使用重疊的索引。在某一列上檢查唯一的數據的個數,比較它與表中數據的行數做一個比較。這就是數據的選擇性,這比較結果將會幫助你決定是否將某一列作為侯選的索引列,如果需要,建哪一種索引。你可以用下面的查詢語句返回某一列的不同值的數目。select count(distinct cloumn_name) from table_name假設column_name是一個10000行的表,則看column_name返回值來決定是否應該使用,及應該使用什么索引。Unique values Index5000 Nonclustered index20 Clustered index3 No index鏃索引和非鏃索引的選擇<1:>鏃索引是行的物理順序和索引的順序是一致的。頁級,低層等索引的各個級別上都包含實際的數據頁。一個表只能是有一個鏃索引。由于update,delete語句要求相對多一些的讀操作,因此鏃索引常常能加速這樣的操作。在至少有一個索引的表中,你應該有一個鏃索引。在下面的幾個情況下,你可以考慮用鏃索引:例如: 某列包括的不同值的個數是有限的(但是不是極少的)顧客表的州名列有50個左右的不同州名的縮寫值,可以使用鏃索引。例如: 對返回一定范圍內值的列可以使用鏃索引,比如用between,>,>=,<,<=等等來對列進行操作的列上。select * from sales where ord_date between ’5/1/93’ and ’6/1/93’例如: 對查詢時返回大量結果的列可以使用鏃索引。SELECT * FROM phonebook WHERE last_name = ’Smith’當有大量的行正在被插入表中時,要避免在本表一個自然增長(例如,identity列)的列上建立鏃索引。如果你建立了鏃的索引,那么insert的性能就會大大降低。因為每一個插入的行必須到表的最后,表的最后一個數據頁。當一個數據正在被插入(這時這個數據頁是被鎖定的),所有的其他插入行必須等待直到當前的插入已經結束。一個索引的葉級頁中包括實際的數據頁,并且在硬盤上的數據頁的次序是跟鏃索引的邏輯次序一樣的。<2:>一個非鏃的索引就是行的物理次序與索引的次序是不同的。一個非鏃索引的葉級包含了指向行數據頁的指針。在一個表中可以有多個非鏃索引,你可以在以下幾個情況下考慮使用非鏃索引。在有很多不同值的列上可以考慮使用非鏃索引例如:一個part_id列在一個part表中select * from employee where emp_id = ’pcm9809f’查詢語句中用order by 子句的列上可以考慮使用鏃索引3 查詢語句的設計<br>SQL Server優化器通過分析查詢語句,自動對查詢進行優化并決定最有效的執行方案。優化器分析查詢語句來決定那個子句可以被優化,并針對可以被優化查詢的子句來選擇有用的索引。最后優化器比較所有可能的執行方案并選擇最有效的一個方案出來。在執行一個查詢時,用一個where子句來限制必須處理的行數,除非完全需要,否則應該避免在一個表中無限制地讀并處理所有的行。例如下面的例子,select qty from sales where stor_id=7131是很有效的比下面這個無限制的查詢select qty from sales避免給客戶的最后數據選擇返回大量的結果集。允許SQL Server運行滿足它目的的函數限制結果集的大小是更有效的。這能減少網絡I/O并能提高多用戶的相關并發時的應用程序性能。因為優化器關注的焦點就是where子句的查詢,以利用有用的索引。在表中的每一個索引都可能成為包括在where子句中的侯選索引。為了最好的性能可以遵照下面的用于一個給定列column1的索引。第一:在表中的column1列上有一個單索引第二:在表中有多索引,但是column1是第一個索引的列不要在where子句中使用沒有column1列索引的查詢語句,并避免在where子句用一個多索引的非第一個索引的索引。這時多索引是沒有用的。For example, given a multicolumn index on the au_lname, au_fname columns of the authors table in the pubs database, 下面這個query語句利用了au_lname上的索引SELECT au_id, au_lname, au_fname FROM authorsWHERE au_lname = ’White’AND au_fname = ’Johnson’SELECT au_id, au_lname, au_fname FROM authorsWHERE au_lname = ’White’下面這個查詢沒有利用索引,因為他使用了多索引的非第一個索引的索引SELECT au_id, au_lname, au_fname FROM authorsWHERE au_fname = ’Johnson’
標簽: Sql Server 數據庫
主站蜘蛛池模板: 米顿罗计量泵(科普)——韬铭机械| ?水马注水围挡_塑料注水围挡_防撞桶-常州瑞轩水马注水围挡有限公司 | 对辊式破碎机-对辊制砂机-双辊-双齿辊破碎机-巩义市裕顺机械制造有限公司 | 船用泵,船用离心泵,船用喷射泵,泰州隆华船舶设备有限公司 | 合肥礼品公司-合肥礼品定制-商务礼品定制公司-安徽柏榽商贸有限公司 | 国产液相色谱仪-超高效液相色谱仪厂家-上海伍丰科学仪器有限公司 | 火锅加盟_四川成都火锅店加盟_中国火锅连锁品牌十强_朝天门火锅【官网】 | 成都治疗尖锐湿疣比较好的医院-成都治疗尖锐湿疣那家医院好-成都西南皮肤病医院 | 学习安徽网| 制氮设备_PSA制氮机_激光切割制氮机_氮气机生产厂家-苏州西斯气体设备有限公司 | 365文案网_全网创意文案句子素材站| 超声骨密度仪-骨密度检测仪-经颅多普勒-tcd仪_南京科进实业有限公司 | ZHZ8耐压测试仪-上海胜绪电气有限公司 | 气力输送设备_料封泵_仓泵_散装机_气化板_压力释放阀-河南锐驰机械设备有限公司 | 沈阳液压泵_沈阳液压阀_沈阳液压站-沈阳海德太科液压设备有限公司 | 浙江清风侠环保设备有限公司| 起好名字_取个好名字_好名网免费取好名在线打分 | 山东钢格板|栅格板生产厂家供应商-日照森亿钢格板有限公司 | 锥形螺带干燥机(新型耙式干燥机)百科-常州丰能干燥工程 | 液压升降货梯_导轨式升降货梯厂家_升降货梯厂家-河南东圣升降设备有限公司 | 分子精馏/精馏设备生产厂家-分子蒸馏工艺实验-新诺舜尧(天津)化工设备有限公司 | 井式炉-台车式回火炉-丹阳市电炉厂有限公司 | 钢结构-钢结构厂房-钢结构工程[江苏海逵钢构厂]| 防水套管厂家_刚性防水套管_柔性防水套管_不锈钢防水套管-郑州中泰管道 | 云南外加剂,云南速凝剂,云南外加剂代加工-普洱澜湄新材料科技有限公司 | 广州食堂承包_广州团餐配送_广州堂食餐饮服务公司 - 旺记餐饮 | 武汉画册印刷厂家-企业画册印刷-画册设计印刷制作-宣传画册印刷公司 - 武汉泽雅印刷厂 | 桁架机器人_桁架机械手_上下料机械手_数控车床机械手-苏州清智科技装备制造有限公司 | 一级建造师培训_一建培训机构_中建云筑建造师培训网校 | 恒温水槽与水浴锅-上海熙浩实业有限公司 | 流变仪-热分析联用仪-热膨胀仪厂家-耐驰科学仪器商贸 | 武汉画册印刷厂家-企业画册印刷-画册设计印刷制作-宣传画册印刷公司 - 武汉泽雅印刷厂 | Akribis直线电机_直线模组_力矩电机_直线电机平台|雅科贝思Akribis-杭州摩森机电科技有限公司 | cnc精密加工_数控机械加工_非标平键定制生产厂家_扬州沃佳机械有限公司 | 直流大电流电源,燃料电池检漏设备-上海政飞 | 温州富欧金属封头-不锈钢封头厂家 | 定时排水阀/排气阀-仪表三通旋塞阀-直角式脉冲电磁阀-永嘉良科阀门有限公司 | VOC检测仪-甲醛检测仪-气体报警器-气体检测仪厂家-深恒安科技有限公司 | 滑石粉,滑石粉厂家,超细滑石粉-莱州圣凯滑石有限公司 | 雪花制冰机(实验室雪花制冰机)百科 | 水平垂直燃烧试验仪-灼热丝试验仪-漏电起痕试验仪-针焰试验仪-塑料材料燃烧检测设备-IP防水试验机 |