国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > SQL Server > 正文

SQL Server優化器特性-位圖過濾(Bitmap)

2024-08-31 00:55:08
字體:
來源:轉載
供稿:網友
SQL Server優化器特性-位圖過濾(Bitmap)

一直以來,由于SQL Server中沒有位圖索引使得面對一些場景,從業人員在索引選擇上受限,飽受詬病.其實熟悉SQL Server的朋友應該知道,SQL Server雖然沒有位圖索引,但在特定環境下還是會采用位圖(Bitmap)過濾的,這次就為大家介紹下SQL Server的位圖過濾.

概念:關于位圖索引的概念我就不做過多介紹了,感興趣的朋友可以看下wikipedia

http://en.wikipedia.org/wiki/Bitmap_index

優勢:在重復率高,數據很少被更新的場景中(如一年之內的年齡,汽車車型等)過濾高效.

SQL Server的位圖過濾采用的布隆過濾(bloom filter)方式,這里我簡單說下布隆過濾的實現方式.

實現方式:通過構建一個長度X的位數組(bit array)(所有位為0),將要匹配的集合通過哈希函數映射到位數組中的相應點中(相應位為1),當判斷一個值是否存在時找bit array中對應位是否為1就可以了.這個過程由SQL Server內部自己完成.

如圖1-1所示,我將需要匹配的集合{神仙?,妖怪?,謝謝!}映射到bit array中,當有一條新記錄{悟空..}我判斷他是否在我的集合中,只需判斷相應的位是否是1就可以了,圖中可以看出{悟空..}并不是所有位都為1,所以悟空并不在我的集合中.

USE AdventureWorksGOSELECT    p.PRoductID + (a.number * 1000) AS ProductID,    p.Name + CONVERT(VARCHAR, (a.number * 1000)) AS Name,    p.ProductNumber + '-' + CONVERT(VARCHAR, (a.number * 1000)) AS ProductNumber,    p.MakeFlag,    p.FinishedGoodsFlag,    p.Color,    p.SafetyStockLevel,    p.ReorderPoint,    p.StandardCost,    p.ListPrice,    p.Size,    p.SizeUnitMeasureCode,    p.WeightUnitMeasureCode,    p.Weight,    p.DaysToManufacture,    p.ProductLine,    p.Class,    p.Style,    p.ProductSubcategoryID,    p.ProductModelID,    p.SellStartDate,    p.SellEndDate,    p.DiscontinuedDateINTO T1FROM Production.Product AS pCROSS JOIN master..spt_values AS aWHERE    a.type = 'p'    AND a.number BETWEEN 1 AND 50GOSELECT     ROW_NUMBER() OVER     (        ORDER BY
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 惠东县| 景泰县| 宽甸| 蓬溪县| 高安市| 澄城县| 枞阳县| 砀山县| 娱乐| 临武县| 罗甸县| 百色市| 馆陶县| 永靖县| 永仁县| 营口市| 枣强县| 巴青县| 黑水县| 兴安盟| 兴和县| 五家渠市| 土默特右旗| 淮安市| 信丰县| 屯留县| 文山县| 寿阳县| 金川县| 龙川县| 当涂县| 阿鲁科尔沁旗| 仙桃市| 寻乌县| 博乐市| 玉林市| 枞阳县| 黄浦区| 泽州县| 三门县| 邯郸市|