- 博客(42)
- 资源 (10)
- 收藏
- 关注
原创 使用SQLIO评估数据库磁盘性能
对于DBA来说,安装SQLServer之前先要了解磁盘的性能,这个很重要。微软提供了SQLIO可以帮助我们在系统安装之前评估磁盘的性能。 1. 下载SQLIO并安装 http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=20163 2.修改SQLIO’s 配置文件 如果直接启动SQLI
2013-09-29 16:56:45 908
原创 SQL Server使用Merge语句当源表数据集为空时,无法进行查询的问题
今天使用Merge语句时遇到了一个问题,当源表数据集为空时,merge就不工作了。下面举一个例子来具体说明一下:有两个表SourceTable为登陆表,TargetTable为授权表,如果访问用户在登陆表中,更新授权表的授权级别,否则授权0表示游客。sql语句如下:--SourceTable为登陆表,TargetTable为授权表--如果访问用户在登陆表中,更新授权表的授权级别,否
2013-09-29 13:38:55 814
转载 如何对SQL Server中的XML数据进行insert、update、delete
SQL Server 2005/2008增加了对XML数据的支持,同时也新增了几种操作XML的方法,本文主要以SQL Server 2008为例介绍如何对XML数据进行insert、update、delete。 SQL Server中新增加了XML.Modify()方法,分别为xml.modify(insert),xml.modify(delete),xml.modify(repla
2013-09-29 12:04:56 704
转载 SQL Server 中对XML数据的五种基本操作
1.xml.exist 输入为XQuery表达式,返回0,1或是Null。0表示不存在,1表示存在,Null表示输入为空 2.xml.value 输入为XQuery表达式,返回一个SQL Server标量值 3.xml.query 输入为XQuery表达式,返回一个SQL Server XML类型流 4.xml.nodes 输入为XQuery表达
2013-09-29 11:54:53 478
原创 SQL Server 中.与::的区别
SQL Server中调用方法时,经常遇到.或是::两种调用方法,其中. 是实例调用方法,::是静态调用方法。如果大家对C#语法熟悉的话,. 对应C#中调用实例方法,:: 对应C#中的static方法。下面给出一个SQL Server的实例,下面的SQL运行在2008环境下:DECLARE @g geography; SET @g = geography::Parse('LINESTR
2013-09-29 11:36:48 526
原创 SQL Server中如何存储具有层次关系的表
SQL Server是关系型数据库,适合存储二维表格的关系型数据,不适合存储具有层次关系的数据,那么如何利用SQL Server存储如下图所示的树型层次关系呢?目前利用SQL Server存储树型关系数据比较成熟的方案是利用主键+外键的方式,即主键存储一个唯一Id值,外键存储此Id的父节点Id值,如果此节点无父节点,则为null。表设计如下:Create Database Test
2013-09-29 11:13:52 579
原创 在SQL Server 事务中使用Savepoints来保存提交点
在SQL Server中使用rollback会回滚所有的未提交事务状态,但是有些时候我们只需要回滚部分语句,把不需要回滚的语句提到事务外面来,虽然是个方法,但是却破坏了事务的ACID。其实我们可以使用SQL Server中的Savepoints来解决上述问题。示例如下:1.先建立测试表: CREATE TABLE [dbo].[ttt]( [Id] [int] NULL
2013-09-29 11:06:55 744
原创 使用SQLServer模板来写规范的SQL语句
如果你经常遇到下面的问题,你就要考虑使用SQL Server的模板来写规范的SQL语句了:SQL初学者。 经常忘记常用的DML或是DDL SQL 语句。 在多人开发维护的SQL中,每个人都有自己的SQL习惯,没有一套统一的规范。 在SQL Server Management Studio中,已经给大家提供了很多常用的现成SQL规范模板。SQL Server Management S
2013-09-29 11:03:00 845
转载 SQL连接字符串大全
自己看吧。市面上能找到的大部分数据库都在这里了。 http://www.connectionstrings.com/附个图。无图无真相。
2013-09-29 10:59:36 467
原创 SQL Server数据库自动处理外键关系的存储过程
最近总在做数据迁移的工作。做过类似工作的朋友都知道,数据迁移时,表之间的外键约束实在是让你头疼的事。因为你必须要确定表迁移的顺序,否则迁移过程中,总是在报外键约束的错误。即使你把表之间的外键临时drop了,迁移数据后,再create时,就会发现由于数据的不一致,导致外键已经无法创建成功了。 根据我的经验,如果迁移的数据不是那么重要的话或者说允许表中有些不一致数据存在的话,那么不必drop和
2013-09-29 09:45:12 592
原创 SQL Server 行列转换示例
SQL Server的行列转换功能非常实用,但是由于其语法不好懂,使很多初学者都不愿意使用它。下面我就用示例的形式,逐一展现Pivot和UnPivot的魅力。如下图 由于近期CSDN的图片服务器不稳定,如果图片挂了,请读者访问图片原地址:http://img242.ph.126.net/4isS79TpI8jxQViyLD410Q==/2136958023189057751.jpg
2013-09-27 17:49:42 470
原创 SQL Server中关于的checkpoint使用说明
在SQL Server中有一个非常重要的命令就是CheckPoint,它主要作用是把缓存中的数据写入mdf文件中。其实在我们进行insert, update, delete时,数据并没有直接写入数据库对应的mdf文件中,而是写入了缓存里,这有点像电驴,因为过于频繁的写入会使磁盘的寿命大大减小。 从上图可以直观的看出。只有当发生checkpoint时,数据才会被写入mdf数据文件。c
2013-09-27 17:45:02 818
原创 如何在未加入域的机器上使用集成认证来登陆SQL Server
一般使用SQL Server的集成认证时,都需要登陆进域,下面介绍一种不需要登陆域就可以使用域用户登陆SQL Server的方法。SQL Server Management Studio 2005和2008的快捷方式如下图: SQL Server 2008 x64: "C:/Program Files (x86)/Microsoft SQL Server/100/Tools/Bi
2013-09-27 17:44:10 1058
原创 SQL Server 优化存储过程的七种方法
优化存储过程有很多种方法,下面介绍最常用的7种。1.使用SET NOCOUNT ON选项我们使用SELECT语句时,除了返回对应的结果集外,还会返回相应的影响行数。使用SET NOCOUNT ON后,除了数据集就不会返回额外的信息了,减小网络流量。2.使用确定的Schema在使用表,存储过程,函数等等时,最好加上确定的Schema。这样可以使SQL Server直接找到对应目标,避
2013-09-27 17:40:41 535
原创 SQL Server 如何在运行时重编译存储过程
有两种方法动态重编译存储过程:1.在Create时加上RECOMPILE选项CREATE PROCEDURE dbo.PersonAge (@MinAge INT, @MaxAge INT) WITH RECOMPILE AS SELECT * FROM dbo.tblTable2.在执行时加上RECOMPILE选项EXEC dbo.PersonAge 65,70
2013-09-27 17:38:44 932
原创 SQL Server 2008行数据和页数据压缩解密
SQL Server的性能主要取决于磁盘I/O效率,提高I/O效率某种程序上就意味着提高性能。SQL Server 2008提供了数据压缩功能来提高磁盘I/O。数据压缩意味着减小数据的有磁盘占用量,所以数据压缩可以用在表,聚集索引,非聚集索引,视图索引或是分区表,分区索引上。数据压缩可以在两个级别上实现:行级别和页级别。页级别压缩包括行级别压缩。表和索引在创建的同时就可以压缩,也可以使用A
2013-09-27 17:25:33 740
原创 在SQL Server中使用自定义数据类型来规范数据库字段变量
我们在设计数据库或是设计表时,经常会遇到同一个字段出于某种原因出现在不同表中的情况。比如SchoolName varchar(50),出现在tblSchoolBase、tblSchoolReport、tblSchoolExpert……表中。这样就很难保证在不同表中SchoolName字段的一致性。比如有些表中是varchar(32),有些是char(32)等。数据类型的不一致会导致数据内容截断,无
2013-09-27 17:04:40 997
原创 SQL Server 中关于EXCEPT和INTERSECT的用法
熟练使用SQL Server中的各种用法会给查询带来很多方便。今天就介绍一下EXCEPT和INTERSECT。注意此语法仅在SQL Server 2005及以上版本支持。EXCEPT是指在第一个集合中存在,但是不存在于第二个集合中的数据。INTERSECT是指在两个集合中都存在的数据。测试如下:[c-sharp] view plaincopy
2013-09-27 14:49:50 590
转载 Linux下sendmail发送邮件
sendEmail的主页http://caspian.dotconf.net/menu/Software/SendEmail/下载地址http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz#tar –zxvf sendEmail-v1.56.tar.gz#cd sendEmail-v1.56
2013-09-26 16:27:12 506
转载 如何使用sendEmail发送邮件
sendEmail是一个轻量级,命令行的SMTP邮件客户端。如果你需要使用命令行发送邮件,那么sendEmail是非常完美的选择:使用简单并且功能强大.这个被设计用在php、bashperl和web站点使用。以上是sendEmail的简单介绍,千万不要和sendmail搞混掉了。用了sendEmail你将不在喜欢sendmail了.下载安装sendEmail?
2013-09-26 15:33:27 1606
转载 SQL Server里用Split函数分割字符串
这2天在写存储过程的时候发现SQL里没有Split函数很是不便,比如有时候存储过程接受了一个用逗号做分隔符的字符串,就需要用到Split了。本着不重复制造轮子的原则,先上网搜索了一下,果然已经有兄弟实现了Split方法并且无私共享了代码。CREATEFUNCTION dbo.Split(@Stringvarchar(8000), @Delimiter char(1))
2013-09-23 15:14:11 2957
翻译 Unable to begin a distributed transaction
What i have done is irrelevant, but i'll post it anyway.Ensure Distributed Transaction Coordinator service is running on both machies:Disable all MSDTC security on both machi
2013-09-16 18:01:11 996
原创 MySQL临时表
MySQL临时表 当你创建临时表的时候,你可以使用temporary关键字。如: create temporary table tmp_table(name varchar(10) not null,passwd char(6) not null)‘或 CREATE TEMPORARY TABLE IF NOT EXISTS sp_
2013-09-16 17:43:18 566
原创 PostgreSQL学习手册(数据库维护)
一、恢复磁盘空间: 在PostgreSQL中,使用delete和update语句删除或更新的数据行并没有被实际删除,而只是在旧版本数据行的物理地址上将该行的状态置为已删除或已过期。因此当数据表中的数据变化极为频繁时,那么在一段时间之后该表所占用的空间将会变得很大,然而数据量却可能变化不大。要解决该问题,需要定期对数据变化频繁的数据表执行VACUUM操作。 VACUUM命令存
2013-09-12 16:11:20 528
原创 PostgreSQL查看数据库,表和索引的大小
1. 查看数据库大小。 select pg_size_pretty(pg_database_size('db_name')); 通过 pgAdmin 我们可以看到,在 PostgreSQL(pg_catalog) 下有如下两个视图: pg_stat_user_tables,pg_stat_user_indexes。可以通过它们来查看表及索引的大小。 2. 查看所有
2013-09-12 16:10:25 2104
原创 PGSQL 重建索引 函数
仅供参考:CREATE OR REPLACE FUNCTION SD_RebuildIndex() RETURNS void AS $$DECLARE var_table_name VARCHAR(150); var_index_name VARCHAR(150); var_reindex_sql VARCHAR(200); var_analyze_
2013-09-12 16:04:29 1702
原创 PostgreSQL 游标处理
PostgreSQL 游标处理简单循环处理I 此写法是先取一条数据,然后判断循环条件 -- 清空日志表.Test=# truncate table log_table;TRUNCATE TABLETest=# select * from test_main; id | value----+------- 1 | O
2013-09-12 15:44:40 8419 1
原创 PostgreSQL学习手册(函数)
一、基本概念: SQL函数可以包含任意数量的查询,但是函数只返回最后一个查询(必须是SELECT)的结果。在简单情况下,返回最后一条查询结果的第一行。如果最后一个查询不返回任何行,那么该函数将返回NULL值。如果需要该函数返回最后一条SELECT语句的所有行,可以将函数的返回值定义为集合,即SETOF sometype。 SQL函数的函数体应该是用分号分隔的SQL语句列表,
2013-09-12 15:44:01 610
原创 CENTOS6 RPM方式安装MYSQL5.5
【下载】登录MySQL官网下载页 http://dev.mysql.com/downloads/mysql/选择 Linux-Generic 而不是Oracle & Ren Hat Linux 6 下载对应的server 和 client 包,在此笔者选用64位MySQL-client-5.5.31-2.linux2.6.x86_64.rpmMySQL-server-5.5.3
2013-09-10 13:26:11 615
转载 MySQL数据库基准压力测试工具之MySQLSlap使用实例
一、Mysqlslap介绍mysqlslap是MySQL5.1之后自带的benchmark基准测试工具,类似Apache Bench负载产生工具,生成schema,装载数据,执行benckmark和查询数据,语法简单,灵活,容易使用。该工具可以模拟多个客户端同时并发的向服务器发出查询更新,给出了性能测试数据而且提供了多种引擎的性能比较。mysqlslap为mysql性能优化前后提供了直观的
2013-09-06 17:58:12 604
转载 【原创】安装和使用 TPCC-MySQL 工具遇到的问题
【原创】安装和使用 TPCC-MySQL 工具遇到的问题http://my.oschina.net/moooofly/blog/148630
2013-09-06 15:36:35 601
转载 CentOS 6.4 优化编译安装MySQL-5.6
在本章中,我们来学习一下怎么在CentOS 6.4上优化编译MySQL-5.6.12源代码并按装之。 第一步,先删除CentOS已有的MySQL然后安装MySQL的一些依赖包:引用 # yum remove mysql # yum -y install gcc gcc-c++ autoconf automake zlib* fie
2013-09-06 15:14:58 955
转载 SQL Server 中的嵌套事务与@@TranCount(转)
在处理事务的时候,一般都用RollBack Transaction来回滚,但是如果在嵌套事务中这样使用的话,就会出现错误。在SqlServer里,嵌套事务的层次是由@@TranCount全局变量反映出来的。每一次Begin Transaction都会引起@@TranCount加1。而每一次Commit Transaction都会使@@TranCount减1,而RollBack Transact
2013-09-06 01:50:50 1025
转载 基准测试工具之tpcc-mysql
TPC(Tracsaction Processing Performance Council) 事务处理性能协会是一个评价大型数据库系统软硬件性能的非盈利的组织,TPC-C是TPC协会制定的,用来测试典型的复杂OLTP系统的性能。Tpcc-mysql是percona基于tpcc衍生出来的产品,专用于mysql基准测试,其源码放在bazaar上,因此需要先安装bazaar客户端。一 下载工具
2013-09-05 19:09:18 976
转载 linux系统中scp命令的用法
scp是 secure copy的缩写, scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。linux的scp命令可以在linux服务器之间复制文件和目录.scp命令的用处:scp在网络上不同的主机之间复制文件,它使用ssh安全协议传输数据,具有和ssh一样的验证机制,从而安全的远程拷贝文件。scp命令基本格式:scp [-1246BCpqrv] [-c ciphe
2013-09-05 16:16:58 596
转载 The 5 minute DBA: Default My.cnf File
The 5 minute DBA: Default My.cnf FilePosted onFebruary 12, 2009 byMatthew YonkovitBecause I was asked….What should I set my my.cnf parameters to? What are good default values? How much m
2013-09-05 12:56:10 773
转载 MySQL 5.6 root 初始密码
最近研究一下MySQL 5.6 版本发现安装后,使用空密码无法登陆安装的过程中有这样的一句话:A RANDOM PASSWORD HAS BEEN SET FOR THE MySQL root USER !You will find that password in '/root/.mysql_secret'.You must change that password on you
2013-09-05 11:46:58 11135
转载 Linux安装mysql——源码安装
1.假设已经有mysql-5.5.10.tar.gz以及cmake-2.8.4.tar.gz两个源文件(1)先安装cmake(mysql5.5以后是通过cmake来编译的)[root@ rhel5 local]#tar -zxv -f cmake-2.8.4.tar.gz[root@ rhel5 local]#cd cmake-2.8.4[root@ rhel5 cmake-2
2013-09-04 17:54:03 568
转载 关于阵列卡的配置参数Cache Policy(缓存策略)
Read-ahead(预读)启用逻辑驱动器的SCSI预读功能。 可将此参数设为No-Read-Ahead(非预读)、Read-ahead(预读)或Adaptive(自适应)。 默认设置为Adaptive(自适应)。* No-Read-Ahead(非预读)指定控制器在当前逻辑驱动器中不使用预读方式。* Read-ahead(预读)指定控制器在当前逻辑驱动器中使用预读方式。* Adapti
2013-09-04 14:23:01 6873
转载 linux下磁盘分区详解 图文
Centos下磁盘管理 1.磁盘分区格式说明 linux分区不同于windows,linux下硬盘设备名为(IDE硬盘为hdx(x为从a—d)因为IDE硬盘最多四个,SCSI,SATA,USB硬盘为sdx(x为a—z)),硬盘主分区最多为4个,不用说大家也知道…..所以主分区从sdb1开始到sdb4,逻辑分区从sdb5开始,(逻辑分区永远从sdb5开始…)设备名可以使用fdis
2013-09-04 13:02:34 653
网络编程大全(基于c++语言)
2010-06-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人