MSSQL网页编程之SQL Server 2005利用干系数据库存储CFG...
Mysql的存储引擎接口定义良好。有兴趣的开发者可以通过阅读文档编写自己的存储引擎。本文先容的是用干系数据库来存储CFG(把持流程图)的信息。在查询时,为了失掉一切dominate干系的了局,利用了CTE来举行递回查询。本文先容的是用干系数据库来存储CFG(把持流程图)的信息。在查询时,为了失掉一切dominate干系的了局,利用了CTE来举行递回查询。复杂例子以下:
1.现有表testRe布局以下
2.欲失掉的查询了局为找到id=a的项的一切pId,即b、c、d。
3.利用CTE做递回查询:
WITHRe_CTE(id,pId,Level)Technorati标签:sqlserver,CTE,递回,查询AS(SELECTid,pId,1ASFROMtestReWHEREid=aUNIONALLSELECTt.id,t.pId,+1FROMtestRetINNERJOINRe_CTEctONt.id=ct.pId)SELECT*FROMRe_CTE个中,Level为可选项
4.查询了局为:
5.CTE的复杂申明(参考MSDNhttp://msdn.microsoft.com/zh-cn/library/ms186243%28SQL.90%29.ASPx):
WITHcte_name(column_name[,...n])AS(CTE_query_definition–-Anchormemberisdefined.UNIONALLCTE_query_definition–-Recursivememberisdefinedreferencingcte_name.)--StatementusingtheCTESELECT*FROMcte_name一个递回CTE布局必需最少包括一个定位点成员和一个递回成员。
实行时:
将CTE表达式拆分为定位点成员和递回成员。
运转定位点成员,创立第一个挪用或基准了局集(T0)。
运转递回成员,将Ti作为输出,将Ti+1作为输入。
反复步骤3,直到前往空集。
前往了局集。这是对T0到Tn实行UNIONALL的了局。
BlackHole黑洞引擎,写入的任何数据都会消失,一般用于记录binlog做复制的中继 所以你总能得到相应的升级版本,来满足你的需求。 至于淘汰的问题,只能说在你的项目周期之内,微软应该都不会倒闭。 一个百万级别的基本信息表A,一个百万级别的详细记录表B,A中有个身份证id,B中也有身份id;先要找出A中在B的详细记录。 SP4是一个累积性的ServicePack,包含自以前的ServicePack发布以来所有的修补程序(包括MS03-031安全公告)。 比如日志传送、比如集群。。。 理解了存储结构,再阅读下性能优化的章节基本上会对sqlserver有个清晰地认识 一直以来个人感觉SQLServer的优化器要比Oracle的聪明。SQL2005的更是比2k聪明了不少。(有次作试验发现有的语句在200万级时还比50万级的相同语句要快show_text的一些提示没有找到解释。一直在奇怪。) 对一张百万级别的表建游标,同时又没有什么过滤条件,取得游标效率是如果直接SQL查询百万条数据;如果再对每条记录做处理,耗时将更长。 备份方面可能还是一个老大难的问题。不能单独备份几个表总是感觉不爽。灵活备份的问题不知道什么时候才能解决。
页:
[1]