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

您的位置:首頁技術(shù)文章
文章詳情頁

影響SQL server性能的關(guān)鍵三個(gè)方面

瀏覽:151日期:2023-10-28 17:13:24
1 邏輯數(shù)據(jù)庫和表的設(shè)計(jì)數(shù)據(jù)庫的邏輯設(shè)計(jì)、包括表與表之間的關(guān)系是優(yōu)化關(guān)系型數(shù)據(jù)庫性能的核心。一個(gè)好的邏輯數(shù)據(jù)庫設(shè)計(jì)可以為優(yōu)化數(shù)據(jù)庫和應(yīng)用程序打下良好的基礎(chǔ)。標(biāo)準(zhǔn)化的數(shù)據(jù)庫邏輯設(shè)計(jì)包括用多的、有相互關(guān)系的窄表來代替很多列的長數(shù)據(jù)表。下面是一些使用標(biāo)準(zhǔn)化表的一些好處。A:由于表窄,因此可以使排序和建立索引更為迅速B:由于多表,所以多鏃的索引成為可能C:更窄更緊湊的索引D:每個(gè)表中可以有少一些的索引,因此可以提高insert update delete等的速度,因?yàn)檫@些操作在索引多的情況下會對系統(tǒng)性能產(chǎn)生很大的影響E:更少的空值和更少的多余值,增加了數(shù)據(jù)庫的緊湊性由于標(biāo)準(zhǔn)化,所以會增加了在獲取數(shù)據(jù)時(shí)引用表的數(shù)目和其間的連接關(guān)系的復(fù)雜性。太多的表和復(fù)雜的連接關(guān)系會降低服務(wù)器的性能,因此在這兩者之間需要綜合考慮。定義具有相關(guān)關(guān)系的主鍵和外來鍵時(shí)應(yīng)該注意的事項(xiàng)主要是:用于連接多表的主鍵和參考的鍵要有相同的數(shù)據(jù)類型。2 索引的設(shè)計(jì)A:盡量避免表掃描檢查你的查詢語句的where子句,因?yàn)檫@是優(yōu)化器重要關(guān)注的地方。包含在where里面的每一列(column)都是可能的侯選索引,為能達(dá)到最優(yōu)的性能,考慮在下面給出的例子:對于在where子句中給出了column1這個(gè)列。下面的兩個(gè)條件可以提高索引的優(yōu)化查詢性能!第一:在表中的column1列上有一個(gè)單索引第二:在表中有多索引,但是column1是第一個(gè)索引的列避免定義多索引而column1是第二個(gè)或后面的索引,這樣的索引不能優(yōu)化服務(wù)器性能例如:下面的例子用了pubs數(shù)據(jù)庫。SELECT au_id, au_lname, au_fname FROM authorsWHERE au_lname = ’White’按下面幾個(gè)列上建立的索引將會是對優(yōu)化器有用的索引?au_lname?au_lname, au_fname而在下面幾個(gè)列上建立的索引將不會對優(yōu)化器起到好的作用?au_address?au_fname, au_lname考慮使用窄的索引在一個(gè)或兩個(gè)列上,窄索引比多索引和復(fù)合索引更能有效。用窄的索引,在每一頁上將會有更多的行和更少的索引級別(相對與多索引和復(fù)合索引而言),這將推進(jìn)系統(tǒng)性能。對于多列索引,SQL Server維持一個(gè)在所有列的索引上的密度統(tǒng)計(jì)(用于聯(lián)合)和在第一個(gè)索引上的histogram(柱狀圖)統(tǒng)計(jì)。根據(jù)統(tǒng)計(jì)結(jié)果,如果在復(fù)合索引上的第一個(gè)索引很少被選擇使用,那么優(yōu)化器對很多查詢請求將不會使用索引。有用的索引會提高select語句的性能,包括insert,uodate,delete。但是,由于改變一個(gè)表的內(nèi)容,將會影響索引。每一個(gè)insert,update,delete語句將會使性能下降一些。實(shí)驗(yàn)表明,不要在一個(gè)單表上用大量的索引,不要在共享的列上(指在多表中用了參考約束)使用重疊的索引。在某一列上檢查唯一的數(shù)據(jù)的個(gè)數(shù),比較它與表中數(shù)據(jù)的行數(shù)做一個(gè)比較。這就是數(shù)據(jù)的選擇性,這比較結(jié)果將會幫助你決定是否將某一列作為侯選的索引列,如果需要,建哪一種索引。你可以用下面的查詢語句返回某一列的不同值的數(shù)目。select count(distinct cloumn_name) from table_name假設(shè)column_name是一個(gè)10000行的表,則看column_name返回值來決定是否應(yīng)該使用,及應(yīng)該使用什么索引。Unique values Index5000 Nonclustered index20 Clustered index3 No index鏃索引和非鏃索引的選擇<1:>鏃索引是行的物理順序和索引的順序是一致的。頁級,低層等索引的各個(gè)級別上都包含實(shí)際的數(shù)據(jù)頁。一個(gè)表只能是有一個(gè)鏃索引。由于update,delete語句要求相對多一些的讀操作,因此鏃索引常常能加速這樣的操作。在至少有一個(gè)索引的表中,你應(yīng)該有一個(gè)鏃索引。在下面的幾個(gè)情況下,你可以考慮用鏃索引:例如: 某列包括的不同值的個(gè)數(shù)是有限的(但是不是極少的)顧客表的州名列有50個(gè)左右的不同州名的縮寫值,可以使用鏃索引。例如: 對返回一定范圍內(nèi)值的列可以使用鏃索引,比如用between,>,>=,<,<=等等來對列進(jìn)行操作的列上。select * from sales where ord_date between ’5/1/93’ and ’6/1/93’例如: 對查詢時(shí)返回大量結(jié)果的列可以使用鏃索引。SELECT * FROM phonebook WHERE last_name = ’Smith’當(dāng)有大量的行正在被插入表中時(shí),要避免在本表一個(gè)自然增長(例如,identity列)的列上建立鏃索引。如果你建立了鏃的索引,那么insert的性能就會大大降低。因?yàn)槊恳粋€(gè)插入的行必須到表的最后,表的最后一個(gè)數(shù)據(jù)頁。當(dāng)一個(gè)數(shù)據(jù)正在被插入(這時(shí)這個(gè)數(shù)據(jù)頁是被鎖定的),所有的其他插入行必須等待直到當(dāng)前的插入已經(jīng)結(jié)束。一個(gè)索引的葉級頁中包括實(shí)際的數(shù)據(jù)頁,并且在硬盤上的數(shù)據(jù)頁的次序是跟鏃索引的邏輯次序一樣的。<2:>一個(gè)非鏃的索引就是行的物理次序與索引的次序是不同的。一個(gè)非鏃索引的葉級包含了指向行數(shù)據(jù)頁的指針。在一個(gè)表中可以有多個(gè)非鏃索引,你可以在以下幾個(gè)情況下考慮使用非鏃索引。在有很多不同值的列上可以考慮使用非鏃索引例如:一個(gè)part_id列在一個(gè)part表中select * from employee where emp_id = ’pcm9809f’查詢語句中用order by 子句的列上可以考慮使用鏃索引3 查詢語句的設(shè)計(jì)<br>SQL Server優(yōu)化器通過分析查詢語句,自動對查詢進(jìn)行優(yōu)化并決定最有效的執(zhí)行方案。優(yōu)化器分析查詢語句來決定那個(gè)子句可以被優(yōu)化,并針對可以被優(yōu)化查詢的子句來選擇有用的索引。最后優(yōu)化器比較所有可能的執(zhí)行方案并選擇最有效的一個(gè)方案出來。在執(zhí)行一個(gè)查詢時(shí),用一個(gè)where子句來限制必須處理的行數(shù),除非完全需要,否則應(yīng)該避免在一個(gè)表中無限制地讀并處理所有的行。例如下面的例子,select qty from sales where stor_id=7131是很有效的比下面這個(gè)無限制的查詢select qty from sales避免給客戶的最后數(shù)據(jù)選擇返回大量的結(jié)果集。允許SQL Server運(yùn)行滿足它目的的函數(shù)限制結(jié)果集的大小是更有效的。這能減少網(wǎng)絡(luò)I/O并能提高多用戶的相關(guān)并發(fā)時(shí)的應(yīng)用程序性能。因?yàn)閮?yōu)化器關(guān)注的焦點(diǎn)就是where子句的查詢,以利用有用的索引。在表中的每一個(gè)索引都可能成為包括在where子句中的侯選索引。為了最好的性能可以遵照下面的用于一個(gè)給定列column1的索引。第一:在表中的column1列上有一個(gè)單索引第二:在表中有多索引,但是column1是第一個(gè)索引的列不要在where子句中使用沒有column1列索引的查詢語句,并避免在where子句用一個(gè)多索引的非第一個(gè)索引的索引。這時(shí)多索引是沒有用的。For example, given a multicolumn index on the au_lname, au_fname columns of the authors table in the pubs database, 下面這個(gè)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’下面這個(gè)查詢沒有利用索引,因?yàn)樗褂昧硕嗨饕姆堑谝粋€(gè)索引的索引SELECT au_id, au_lname, au_fname FROM authorsWHERE au_fname = ’Johnson’
標(biāo)簽: Sql Server 數(shù)據(jù)庫
主站蜘蛛池模板: 柴油机_柴油发电机_厂家_品牌-江苏卡得城仕发动机有限公司 | 电磁铁_小型推拉电磁铁_电磁阀厂家-深圳市宗泰电机有限公司 | 医养体检包_公卫随访箱_慢病随访包_家签随访包_随访一体机-济南易享医疗科技有限公司 | 番茄畅听邀请码怎么输入 - Dianw8.com | GEDORE扭力螺丝刀-GORDON防静电刷-CHEMTRONICS吸锡线-上海卓君电子有限公司 | 布袋式除尘器|木工除尘器|螺旋输送机|斗式提升机|刮板输送机|除尘器配件-泊头市德佳环保设备 | 柴油发电机组_柴油发电机_发电机组价格-江苏凯晨电力设备有限公司 | 许昌奥仕达自动化设备有限公司 | 阳光1号桔柚_无核沃柑_柑橘新品种枝条苗木批发 - 苧金网 | 骨密度检测仪_骨密度分析仪_骨密度仪_动脉硬化检测仪专业生产厂家【品源医疗】 | 金属回收_废铜废铁回收_边角料回收_废不锈钢回收_废旧电缆线回收-广东益夫金属回收公司 | Honsberg流量计-Greisinger真空表-气压计-上海欧臻机电设备有限公司 | 气力输送_输送机械_自动化配料系统_负压吸送_制造主力军江苏高达智能装备有限公司! | 市政路灯_厂家-淄博信达电力科技有限公司 | 艺术涂料_进口艺术涂料_艺术涂料加盟_艺术涂料十大品牌 -英国蒙太奇艺术涂料 | 复合土工膜厂家|hdpe防渗土工膜|复合防渗土工布|玻璃纤维|双向塑料土工格栅-安徽路建新材料有限公司 | 私人别墅家庭影院系统_家庭影院音响_家庭影院装修设计公司-邦牛影音 | 拉曼光谱仪_便携式|激光|显微共焦拉曼光谱仪-北京卓立汉光仪器有限公司 | 天然鹅卵石滤料厂家-锰砂滤料-石英砂滤料-巩义东枫净水 | 注塑机-压铸机-塑料注塑机-卧式注塑机-高速注塑机-单缸注塑机厂家-广东联升精密智能装备科技有限公司 | 购买舔盐、舔砖、矿物质盐压块机,鱼饵、鱼饲料压块机--请到杜甫机械 | 数显恒温油浴-电砂浴-高温油浴振荡器-常州迈科诺仪器有限公司 | 活性氧化铝|无烟煤滤料|活性氧化铝厂家|锰砂滤料厂家-河南新泰净水材料有限公司 | 回转支承-转盘轴承-回转驱动生产厂家-洛阳隆达轴承有限公司 | 无轨电动平车_轨道平车_蓄电池电动平车★尽在新乡百特智能转运设备有限公司 | 企业微信scrm管理系统_客户关系管理平台_私域流量运营工具_CRM、ERP、OA软件-腾辉网络 | 阴离子聚丙烯酰胺价格_PAM_高分子聚丙烯酰胺厂家-河南泰航净水材料有限公司 | 压砖机、液压制砖机、静压砖机、环保砖机生产厂家—杜甫机械 | 美侍宠物-专注宠物狗及宠物猫训练|喂养|医疗|繁育|品种|价格 | 优考试_免费在线考试系统_培训考试系统_题库系统_组卷答题系统_匡优考试 | 网站优化公司_北京网站优化_抖音短视频代运营_抖音关键词seo优化排名-通则达网络 | 深圳希玛林顺潮眼科医院(官网)│深圳眼科医院│医保定点│香港希玛林顺潮眼科中心连锁品牌 | 北京发电车出租-发电机租赁公司-柴油发电机厂家 - 北京明旺盛安机电设备有限公司 | 西装定制/做厂家/公司_西装订做/制价格/费用-北京圣达信西装 | 带锯机|木工带锯机圆木推台锯|跑车带锯机|河北茂业机械制造有限公司| | 湖北省煤炭供应链综合服务平台| 陶氏道康宁消泡剂_瓦克消泡剂_蓝星_海明斯德谦_广百进口消泡剂 | 汽车润滑油厂家-机油/润滑油代理-高性能机油-领驰慧润滑科技(河北)有限公司 | 进口试验机价格-进口生物材料试验机-西安卡夫曼测控技术有限公司 | 一礼通 (www.yilitong.com)-企业礼品解决方案一站式服务平台 | 鲁尔圆锥接头多功能测试仪-留置针测试仪-上海威夏环保科技有限公司 |