日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

hierarchyid 和 父\子

系統(tǒng) 2084 0

父/子

使用父/子方法時(shí),每一行都包含對(duì)父級(jí)的引用。下表定義了一個(gè)用于在父/子關(guān)系中包含父行和子行的典型表:

復(fù)制代碼
                    USE AdventureWorks2008R2 ;

GO



CREATE TABLE ParentChildOrg

???(

????BusinessEntityID int PRIMARY KEY,

????ManagerId int REFERENCES ParentChildOrg(BusinessEntityID),

????EmployeeName nvarchar(50) 

???) ;

GO
                  

針對(duì)一些常見操作比較父/子與 hierarchyid

  • 使用 hierarchyid 進(jìn)行子樹查詢時(shí)速度明顯加快。

  • 使用 hierarchyid 進(jìn)行直接后代查詢時(shí)速度稍慢。

  • 使用 hierarchyid 移動(dòng)非葉節(jié)點(diǎn)時(shí)速度明顯減慢。使用 hierarchyid 插入非葉節(jié)點(diǎn)和插入或移動(dòng)葉節(jié)點(diǎn)具有相同的復(fù)雜度。

當(dāng)存在以下情況時(shí),使用父/子可能更好:

  • 鍵的大小非常重要。在節(jié)點(diǎn)數(shù)相同的情況下, hierarchyid 值等于或大于整型系列( smallint int bigint )的值。這只是在很少情況下使用父/子的一個(gè)原因,因?yàn)? hierarchyid 在 I/O 局部實(shí)用性和 CPU 復(fù)雜性方面明顯優(yōu)于使用父/子結(jié)構(gòu)時(shí)所需的公用表表達(dá)式。

  • 很少跨層次結(jié)構(gòu)的不同部分執(zhí)行查詢。也就是說,是否通常僅對(duì)層次結(jié)構(gòu)中的單個(gè)點(diǎn)進(jìn)行查詢。在這些情況下,存儲(chǔ)在一起并不重要。例如,如果組織表僅用于為各個(gè)雇員運(yùn)行工資單,則使用父/子更好。

  • 非葉子樹移動(dòng)頻繁并且性能非常重要。在父/子表示形式中,更改層次結(jié)構(gòu)中行的位置將影響單個(gè)行。使用 hierarchyid 時(shí),更改行的位置將影響 n 行,其中 n 是要移動(dòng)的子樹中的節(jié)點(diǎn)數(shù)。

    如果這種非葉子樹移動(dòng)頻繁并且性能非常重要,但多數(shù)移動(dòng)操作都是在比較明確的層次結(jié)構(gòu)級(jí)別上進(jìn)行的,請(qǐng)考慮將較高和較低的級(jí)別拆分成兩個(gè)層次結(jié)構(gòu)。這樣,所有的移動(dòng)操作都是移到較高層次結(jié)構(gòu)的葉級(jí)。例如,假設(shè)有一個(gè)由服務(wù)承載的網(wǎng)站的層次結(jié)構(gòu)。各網(wǎng)站包含許多以分層方式排列的頁面。承載的網(wǎng)站可能移動(dòng)到網(wǎng)站層次結(jié)構(gòu)中的其他位置,但是從屬的頁面很少會(huì)重新排列。這種情況可表示如下:

    復(fù)制代碼
                            CREATE TABLE HostedSites 
    
    ???(
    
    ????SiteId hierarchyid, PageId hierarchyid
    
    ???) ;
    
    GO
                          

hierarchyid 和 父\子


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 丽江市| 静安区| 清水河县| 胶南市| 涞水县| 尚义县| 汶上县| 郑州市| 东海县| 西盟| 湄潭县| 万宁市| 新余市| 喀喇沁旗| 苏州市| 新疆| 息烽县| 松原市| 中卫市| 平度市| 鄢陵县| 霍城县| 固阳县| 潢川县| 天门市| 开平市| 六盘水市| 绵阳市| 龙里县| 汝阳县| 蒙城县| 诸暨市| 成武县| 彭泽县| 临西县| 双柏县| 汉寿县| 夏邑县| 永年县| 普定县| 丰台区|