小妖女 发表于 2015-1-16 14:07:10

使用sql查出数据库中一切盘算列及盘算公式

目前的方案是用mysqlbinlog工具,增加一个flashback参数,输出结果为一个新的binlog文件――姑且叫做flashbacklog,这个flashbacklog顺序执行,可制定某张表和执行到哪个pos,来实现数据库的闪回。假如我们在数据库的表中界说了很多的盘算列,我们能够使用目次视图sys.computed_columns来查询出数据库中一切的盘算列及盘算公式。

sql语句以下:
select*fromsys.computed_columns

上面对该视图的几个主要列解说一下:
1,object_id--该盘算列的所属表的ID,能够分离object_name(object_id)来查询出所属表名,sql以下:
selectobject_name(object_id)as所属表名,*fromsys.computed_columns

2,name--该盘算列的列名
3,definition--该盘算列的公式(该列长短常有效的,使用该列的了局,能够年夜年夜提拔我们办理盘算列的效力)
4,is_persisted--唆使该盘算列是不是是耐久化的。

大概有些伴侣会对is_persisted属性不太了解,甚么是耐久化的?耐久化的盘算列与非耐久化的盘算列有甚么区分?
·耐久化的盘算列在每次用户更新数据是就盘算好了局,并将该了局存储起来,就相称于一列实践存在的列。由于该列的了局都已存储起来了,以是能够在耐久化的盘算列上创建索引。
·非耐久化的盘算列只要在用户每次查询该字段的时分才盘算出了局并前往,相对耐久化的盘算列,它不占用存储空间。但不成以在非耐久化的盘算下面创建索引,以是在读取的速率上稍逊一点。

倡议:在有庞大公式的盘算列,我们最好将该盘算列设置为耐久化的,如许会提拔我们sql的查询速率。Merge将一定数量的MyISAM表联合而成一个整体,在超大规模数据存储时很有用

再现理想 发表于 2015-1-18 12:05:23

having子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having条件显示特定的组,也可以使用多个分组标准进行分组。

飘灵儿 发表于 2015-1-24 16:47:07

以前的DTS轻盈简单。但是现在的SSIS虽然功能强大了很多,但是总是让人感觉太麻烦。看看论坛中询问SSIS的贴子就知道。做的功能太强大了,往往会有很多用户不会用了

小女巫 发表于 2015-2-2 11:27:57

这就引发了对varchar和char效率讨论的老问题。到底如何分配varchar的数据,是否会出现大规模的碎片?

小妖女 发表于 2015-2-7 19:08:46

其中最有名的应该是row_number了。这个终于解决了用临时表生成序列号的历史,而且SQLServer2005的row_number比Oracle的更先进。因为它把Orderby集成到了一起,不用像Oracle那样还要用子查询进行封装。

深爱那片海 发表于 2015-2-23 08:58:13

sqlserver的痛苦之处在于有用文档的匮乏,很多只是表明的东西

莫相离 发表于 2015-3-7 07:19:44

如果是将来做数据库的开发设计,就应该详细学习T-SQL的各种细节,包括T-SQL的程序设计、存储过程、触发器以及具体使用某个开发语言来访问数据库。

飘飘悠悠 发表于 2015-3-14 16:30:22

但是随着数据量的增大,这种成本差距会逐渐减小,趋于相等。(500万数量级只相差10%左右)

不帅 发表于 2015-3-21 13:13:36

我是新手,正在学习数据库和操作系统,深感理论的泛广,唯有一步一步来,但是又感觉时间不够,收集了很多资料却总是没能认真的看完,希望有一个讨论板块,大家共同解决,共同分享,共同努力
页: [1]
查看完整版本: 使用sql查出数据库中一切盘算列及盘算公式