2012-04-27 星期五 14:19:49 by :Philip, 26 Visits, 0 Comments
北京时间2012年3月8日上午8时,微软发布SQL Server 2012 RTM版本。标志着SQL Server 2012已经可以进入生产领域了。
SQL Server 2012在大数据处理方面有了更大的发展,为了进一步把SQL Server,Microsoft Excel、PowerPivot for Excel 2010与Power View等丰富的商业智能工具和其他非结构化数据连接起来,微软宣布计划将在2012年上半年发布面向Windows Azure平台的一项基于Apache Hadoop服务的限量预览版。

有不少专业数据处理人员对于Excel这样的产品嗤之以鼻,特别是在统计分析领域。在统计计算精度上确实会有些许的偏差,所以微软会把上面提到的多项产品整合在一起。比如Excel虽然稍逊于SAS这样的专业软件,但与SQL Server的无缝连接可以让员工节约更多的时间,也有助于整个IT系统以一个更加紧密的整体工作。
更高、更快、更强,这已经被微软用来形容SQL Server 2012的强大。在可靠数据的基础上实现更快的数据查询,建立属于团队自己的云,BI智能等等方面都是SQL Server 2012的亮点。
这次微软发布SQL Server 2012时提到SQL 2012将做到“Any Data,Any Size,Any Where”。SQL Server 2012将连接全世界的数据,从金融到人际交互。SQL Server将作用于用户的个人电脑和手持智能终端,如手机和平板电脑。这些数据都将透过SQL Server 2012连接起来。
Windows 8的主要改进就在于无缝链接PC机与其他手持智能终端,而SQL Server 2012将从后台数据链将这种连接更加牢固。
现在呢,让我们来看看这个新版给我们带来了什么激动人心的功能吧。
1.AlwaysOn - 这个功能将数据库的镜像提到了一个新的高度。用户可以针对一组数据库做灾难恢复而不是一个单独的数据库。
2. Windows Server Core 支持- Windows Server COre 是命令行界面的 Windows,使用 DOS 和 PowerShell 来做用户交互。它的资源占用更少,更安全,支持 SQL Server 2012。
3. Columnstore 索引- 这是 SQL Server 独有的功能。它们是为数据仓库查询设计的只读索引。数据被组织成扁平化的压缩形式存储,极大的减少了 I/O 和内存使用。
4. 自定义服务器权限- DBA 可以创建数据库的权限,但不能创建服务器的权限。比如说,DBA想要一个开发组拥有某台服务器上所有数据库的读写权限,他必须手动的完成这个操作。但是 SQL Server 2012 支持针对服务器的权限设置。
5. 增强的审计功能 - 现在所有的 SQL Server 版本都支持审计。用户可以自定义审计规则,记录一些自定义的时间和日志。
6. BI 语义模型- 这个功能是用来替代“Analysis Services Unified Dimentional Model”的。这是一种支持 SQL Server 所有 BI 体验的混合数据模型。
7. Sequence Objects - 用 Oracle 的人一直想要这个功能。一个序列(sequence)就是根据触发器的自增值。SQL Serve 有一个类似的功能,identity columns,但是现在用对象实现了。
8. 增强的 PowerShell 支持- 所有的 Windows 和 SQL Server 管理员都应该认真的学习 PowderShell 的技能。微软正在大力开发服务器端产品对 PowerShell 的支持。
9. 分布式回放(Distributed Replay)- 这个功能类似 Oracle 的 Real Application Testing 功能。不同的是 SQL Server 企业版自带了这个功能,而用 Oracle 的话,你还得额外购买这个功能。这个功能可以让你记录生产环境的工作状况,然后在另外一个环境重现这些工作状况。
10. PowerView- 这是一个强大的自主 BI 工具,可以让用户创建 BI 报告。
11. SQL Azure 增强- 这和 SQL Server 2012 没有直接关系,但是微软确实对 SQL Azure 做了一个关键改进,例如 Reporint Service,备份到 Windows Azure 。Azure 数据库的上限提高到了150G。
12. 大数据支持- 这是最重要的一点,虽然放在了最后。去年的 PASS(Professional Association for SQL Server)会议,微软宣布了与 Hadoop 的提供商 Cloudera 的合作。一是提供 Linux 版本的 SQL Server ODBC 驱动。主要的合作内容是微软开发 Hadoop 的连接器,也就是 SQL Server 也跨入了 NoSQL 领域。
SQL Server 2012 对微软来说是一个重要产品。微软把自己定位为可用性和大数据领域的领头羊。
下载地址:
http://www.microsoft.com/downloads/zh-cn/details.aspx?familyid=a74d1b60-6566-4551-b581-03337853b82b
2011-12-18 星期日 18:19:30 by :Philip, 141 Visits, 2 Comments
例:SELECT * FROM table_name ORDER BY rand() LIMIT 5;
rand在手册里是这么说的:
RAND()
RAND(N)
返回在范围0到1.0内的随机浮点值。如果一个整数参数N被指定,它被用作种子值。
mysql> select RAND();
-> 0.5925
mysql> select RAND(20);
-> 0.1811
mysql> select RAND(20);
-> 0.1811
mysql> select RAND();
-> 0.2079
mysql> select RAND();
-> 0.7888
你不能在一个ORDER BY子句用RAND()值使用列,因为ORDER BY将重复计算列多次。然而在MySQL3.23中,你可以做: SELECT * FROM table_name ORDER BY RAND(),这是有利于得到一个来自SELECT * FROM table1,table2 WHERE a=b AND c
测试了一下,8千条记录的表,执行一次需要0.08 sec,慢了些
后来调整了一下,得到如下代码
SELECT *
FROM table_name AS r1 JOIN
(SELECT ROUND(RAND() *
(SELECT MAX(id)
FROM table_name)) AS id)
AS r2
WHERE r1.id >= r2.id
ORDER BY r1.id ASC
LIMIT 5;
执行效率需要0.02 sec,要注意的是,只有mysql 4.1.*以上才支持这样的子查询。
2011-12-12 星期一 12:26:41 by :Philip, 209 Visits, 1 Comments

MySQL数据库5.5.19发布了,该版本的改进包括:
新增功能
◆ 通过为元数据锁对象创建缓存,提升了Windows XP系统中元数据锁操作的性能,这可以使服务器避免在XP中创建和销毁同步对象的高成本操作。
◆ 增加了一个新的系统变量metadata_locks_cache_size,允许控制缓存大小,默认大小为1024。
◆ 复制:在此之前,主从服务器通过使用非本地认证的主账户进行复制连接。现在也适用于Windows本地认证。
Bug修复
◆ InnoDB存储引擎:当DML操作的缓冲做了大量改变时,尤其是使用DELETE语句时,可能造成服务器死锁。
◆ DBL_MAX返回DBL_MAX,而不是“inf”。
◆ 当使用--write-binlog或--skip-write-binlog选项运行时,mysql_upgrade不升级系统表或创建mysql_upgrade_info文件。
◆ 如果一个插件被卸载,使用PLUGIN_VAR_MEMALLOC标记的字符串类型变量的局部变量不被释放。
详细信息参阅:http://dev.mysql.com/doc/refman/5.5/en/news-5-5-19.html

每一个时代都是平等的,但是天才总是超越自己所属的时代。
在那山的这边海的那边有一群程序员,他们老实又腼腆,他们聪明又有钱。他们一天到晚坐在那里熬夜写软件,如果饿了就咬一口方便面!哦 苦命的程序员,哦苦命的程序员,只要一改需求他们就要重新搞一遍,但是期限只剩下最后两天。