[SQL Server2008]MDX查询语句
在Essbase中使用MDX只能用于查询,尚不能来操作Cube(MS SSAS中可以使用MDX来操作Cube的),所以这里只学习MDX的Select语句。
在学习的过程中,我觉得最有难度的地方有两个。
一是,对OLAP多维的理解。如同学习SQL一样,SQL作用的对象是表,表的结构都是二维的,标识行列即可;但是MDX作用的对象是多维数据库,那么就得理解多维数据库的维度,层级,成员,以及如何在多维数据库中定位不同层级的成员。
二是,理解MDX查询语句的结构及术语的含义。学习SQL时,我们常提到表,字段,那么MDX中呢,想必这些术语必须理解,例如:Cube,Slice,Axis,Set,Tuple,Members
我的学习经历是这样的,首先了解MDX语句的特点及功用。
“MDX全称是Mutil-Dimensional Expressions,即多为表达式。MDX是一种和SQL类似的语言,它也可以用于查询、计算和定义一些元数据。只不过SQL是基于OLTP的,而MDX是基于OLAP的,也就是说,MDX是对多维数据进行查询的。和其它的OLAP语言不同,MDX并不完全是一种报告形式语言。但用MDX查询出来的结果仍然可以在客户端程序中以表格形式进行展现。MDX和SQL一样,也有很多不同功能的API来支持MDX,最常用到的就是XML API。”
上面的一段话是从网上摘录来的,给MDX做了一个定义。
接下来学习MDX查询语句的结构及组成。
[<with_section>]
SELECT [<axis_specification>
[, <axis_specification>...]]
[from [<cube_specification>]]
[WHERE [<slicer_specification>]]
这个结构就是MDX查询语句的通用结构,从中要理解哪些是关键字以及关键字的顺序,WITH section、Axis、Cube、Slicer的位置。这些都是MDX的语法规定,所以要牢记各自的位置。
然后学习的是以上MDX语句结构中各个位置的含义。
<with_section>的位置用于设定自定义的计算。有两种运用,WITH SET…,WITH MEMBER…,在复杂的MDX查询语句中经常被用到。
<axis_specification>的位置用于设定轴。这个轴是反映在MDX语句的输出报表上的。常用的就是列、行、页,如下图所示:
<cube_specification>位置用于指定查询用的Cube,只能指定一个。
<slicer_specification>位置用于指定限制条件,可以是多个限制条件,反映在Cube中称为切片。
&n
相关文档:
巧用SQL的全局临时表防止用户重复登录
文章来自:http://www.cnblogs.com/lindayyh/archive/2010/04/05/1704763.html
在我们开发商务软件的时候,常常会遇到这样的一个问题:怎样防止用户重复登录我们的系统?特别是对于银行或是财务部门,更是要限制用户以其工号身份多次登入。
可能会有人说在用户信息表中加一字段判 ......
1、实现行列动态转换,常用于主从表关联时的特殊需求
select rwbm,psqh,
max(decode(xh1,1,yy))JKYL1,
max(decode(xh1,2,yy))JKYL2,
&n ......
我觉得主要应该从5个方面进行调整:
1.去掉不必要的大型表的全表扫描
2.缓存小型表的全表扫描
3.检验优化索引的使用
4.检验优化的连接技术
5.尽可能减少执行计划的Cost
现在简单的举几个例子
Where子句中有“!=”将不使用索引
select account_name from test where amount != 0 (不使用)
......
更新:新的东西从最新的更新将是红色的。
This list will grow as I find new tools.这份名单将成长为我找到新的工具。 So if you know of some not on this list do post them in the comments.所以,如果你知道一些不在此名单中的意见后做他们。
SQL Server Management Studio Add-in's SQL Server管理工作室外接的
......