
SQL开发
studyzy
PalletOne联合创始人&CTO
展开
-
SQL Server连接中三个常见的错误分析(转)
一."SQL Server 不存在或访问被拒绝" 这个是最复杂的,错误发生的原因比较多,需要检查的方面也比较多. 一般说来,有以下几种可能性: 1.SQL Server名称或IP地址拼写有误 2.服务器端网络配置有误 3.客户端网络配置有误 要解决这个问题,我们一般要遵循以下的步骤来一步步找出导致错误的原因. 首先,检查网络物原创 2013-09-10 14:19:04 · 754 阅读 · 0 评论 -
数据库SQL开发的一些要点
前段时间做一个项目,其中涉及到报表部分编写了大量复杂的SQL,比如其中的一个存储过程就有700多行。项目上线过后,进入维护阶段,发现大量的SQL很难维护。于是总结点经验教训: 设计 一、数据库命名遵循一些通用规范。 数据库命名规范是个基本的命名标准,每个团队都有自己的命名规范,我们做项目中以全大写下划线分割作为标准。表名或字段名要准确表达其业务含义。以DATE结尾的数据类型都是date类型,原创 2013-09-10 14:23:41 · 1914 阅读 · 0 评论 -
多语言系统的数据库设计
之前做的项目涉及到中国大陆和纽伦新港的用户使用,也就需要做成一个多语言的系统,现在总结下其中一些经验和思考。 首先我们需要确认我们要做的系统,多语言到底是要做多少种语言,以后会不会要求增加更多的语言。比如我们做一个给中国大陆和纽伦新港使用的系统,可以确定的语言就是简体中文、繁体中文和英语,而且可以确定以后也不会增加语言。确定以后是否需要增加语言这一点很重要,决定了我们在数据库设计时,是否需要考虑原创 2013-09-10 14:23:48 · 2980 阅读 · 0 评论 -
SQL2005实现循环每一行做一定操作。
要对一个表的每一行做出比较复杂的操作,一般会想到用游标,今天想到使用SQL2005中的新函数ROW_NUMBER()和while循环来对每一行执行操作。示例代码如下:select Department_No as departmentNo,ROW_NUMBER() OVER(ORDER BY Department_No) AS rowNumber into #depTemp--建立临时表fro原创 2013-09-10 14:19:11 · 777 阅读 · 0 评论 -
.Net+SQL Server企业应用性能优化笔记1——调研
在进行了一段时间的调研后,本周开始着手进行性能优化工作。现在在优化工作工作之前,我总结一下调研了的一些信息。1.背景客户这是一个03年的时候开发的系统了,所以使用的是.NET 1.1+SQL Server 2000,操作系统用的是Windows2003,使用了这么几年,只是对操作系统进行了升级(从当时的Windows2000升级到2003的)以及对系统进行维护,.Net环境和数据库并没有改原创 2013-09-10 14:21:24 · 736 阅读 · 0 评论 -
数据库中计算值的更新方法
在做项目时,经常在项目中会遇到有些值是通过其他表经过计算得来的,然后将计算结果保存到数据库中。比如在一个休假系统中,一个员工每年已休天数就是一个计算值,通过SUM员工的所有有效休假申请单可获得。再比如交易系统中的余额字段,对一个账号的所有流水进行SUM,所有收入减去所有支出就是余额。再比订单系统中,订单的总金额字段,就是订单明细的金额的SUM值。 对于这些字段,都有一个共性,那就是这个字段是可以原创 2013-09-10 14:23:44 · 2605 阅读 · 0 评论 -
数据库设计范式(转)
关系数据库设计之时是要遵守一定的规则的。尤其是数据库设计范式 现简单介绍1NF(第一范式),2NF(第二范式),3NF(第三范式)和BCNF,另有第四范式和第五范式留到以后再介绍。 在你设计数据库之时,若能符合这几个范式,你就是数据库设计的高手 关系数据库设计之时是要遵守一定的规则的。尤其是数据库设计范式 现简单介绍1NF(第一范式),2NF(第二范式),3NF(第三范式)和BCNF,另有第四范式原创 2013-09-10 14:19:09 · 569 阅读 · 0 评论 -
如何将SQLServer2005中的数据同步到Oracle中
有时由于项目开发的需要,必须将SQLServer2005中的某些表同步到Oracle数据库中,由其他其他系统来读取这些数据。不同数据库类型之间的数据同步我们可以使用链接服务器和SQLAgent来实现。假设我们这边(SQLServer2005)有一个合同管理系统,其中有表contract 和contract_project是需要同步到一个MIS系统中的(Oracle9i)那么,我们可以按照以下几步实原创 2013-09-10 14:19:54 · 659 阅读 · 0 评论 -
SQL 2005中pivot and unpivot的用法
.Pivot的用法体会: 语句范例: select PN,[2006/5/30] as [20060530],[2006/6/2] as [20060602] from consumptiondata a Pivot (sum(a.M_qty) FOR a.M_date in ([2006/5/30],[2006/6/2])) as PVT order by PN转载 2013-09-10 14:20:25 · 723 阅读 · 0 评论 -
使用链接服务器在异构数据库中查询数据
SQL Server提供了链接服务器用于分布式查询异构数据库。通过链接服务器可以链接到Oracle、Sybase、DB2、SQL Server等大型关系数据库,也可以连接到Access、Excel等文件数据库,甚至可以连接到目录服务(AD)、索引服务等。要链接到一种数据库需要使用相应的接口。微软为很多数据库提供了驱动接口,所以可以直接使用,但是对于没有提供驱动的数据库比如Sybase,则需要在服务原创 2013-09-10 14:21:04 · 1343 阅读 · 0 评论 -
简单的说下什么是数据仓库
一般的数据库是一个操作型的数据存储工具,比如一个学校的选课系统的数据库,学生选课系统由教务处建设和管理,主要用于课程的排课和学生的选课,教务处人员可以在选课系统中增加、修改、删除和查询排课信息,学生也可以在选课系统中对选课信息进行操作。由于该数据库面向的是选课,所以记录的是与课程安排与选课的信息,其数据库模型简化如下图所示: 与一般操作型的数据库不同的是数据仓库主要是面向查询操作,而且查询原创 2013-09-10 14:22:25 · 1157 阅读 · 0 评论 -
Oracle在英文匹配时大小写敏感,如何忽略大小写进行匹配
SQL Server使用英文字符串的匹配的时候默认是忽略大小写的,这样用起来是比较方便的,如果想不忽略大小写也可以修改配置,但是Oracle好像不能忽略大小写,在进行字符串匹配的时候就比较麻烦了。那么该怎么解决大小写敏感的问题,把需要的数据都查询出来呢?最常见的办法就是把查询的参数和字段中的内容都转化成大写或者都转化成小写,这样就可匹配了。 比如如下的查询: select * from hr.原创 2013-09-10 14:22:29 · 3377 阅读 · 0 评论 -
关于ADO.NET连接池
前几天同事问我一个问题,一种CS架构的程序,直接把SQL Server作为服务端,每个客户端直接连接数据库操作,如果客户端打开的数量过多时SQL Server的连接数将会特别高,数据库端形成性能瓶颈,这种情况下怎么办?想了想,造成这种情况的原因是ADO.NET的内部机制造成的。ADO.NET中为了提高性能,所以使用了连接池,这样每个请求就不必都创建一个连接,然后认证,然后执行SQL,而是从连接池中原创 2013-09-10 14:20:50 · 1243 阅读 · 0 评论 -
使用SQLServer2005的链接服务器链接Sybase数据库
在以前的一篇文章中我讲到了Sybase ASE数据库的安装,接下来本篇就讲一下Sybase数据库与SQLServer2005数据库的同步,准确的说是使用SQLServer2005读取和写入Sybase数据库表。为什么要这样做拉?因为在项目中有时需要做其他系统的数据接口,而接口中的数据是存放在Sybase数据库中,这个时候就可以使用SQLServer2005中的链接服务器来连接Sybase数据库原创 2013-09-10 14:20:44 · 1121 阅读 · 0 评论 -
SQL2008空间数据类型--欧氏几何1基础
1 基础 在SQL2008中增加了对地理空间数据类型的支持,该类型分为2种:欧式(平面)几何geometry 和地理空间(椭圆体)几何geography 。欧式几何大家基本上都学过,是以坐标来表示,而地理空间就是使用经度和纬度来表示,由于平面几何比较简单(我记得好像是初中时候学的,高中学立体几何),所以我就从简单的学起,先学习geometry 数据类型。 在平面几何中我们有3个基本元素:点、线、原创 2013-09-10 14:20:23 · 866 阅读 · 0 评论 -
用SQL语句获得一个存储过程返回的表
定义一个存储过程如下:create proc [dbo].[test1]@id intasselect 1 as id,'abc' as name union all select @id as id,'zzz' as name返回两行数据.现在想用SQL语句来调用这个存储过程,并把他返回的表放入变量中.可以如下做:declare @table table(原创 2013-09-10 14:19:31 · 10486 阅读 · 0 评论 -
同样功能的SQL语句,写成参数和写成常量怎么效率会有那么大的差别
今天写一个存储过程,由于执行的时间比较长(7秒)所以打算优化一下.结果在优化测试代码中发现如下一个奇怪的现象.现在有一个表mis_gl_balance,其中有一个字段ACC_SEGMENT VARCHAR(181) NULL ,他的内容的形式如下:3810.105301.5414070180.000000.00000000.0000.000000另外一个表finance_budget_原创 2013-09-10 14:19:45 · 1799 阅读 · 0 评论 -
Oracle数据类型(转)
Character 数据类型 Character 数据类型用来存储字母数字型数据。当你在oracle 中定义一个character 数据时,通常需要制定字段的长度,它是该字段的最大长度。ORACLE提供以下几种character 数据类型:CHAR() CHAR数据类型是一种有固定长度和最大长度的字符串。存储在数据类型为CHAR字段中的数据将以空格的形式补到最大长度。长度定义在1——200原创 2013-09-10 14:20:05 · 707 阅读 · 0 评论 -
安装使用Sybase ASE 12.5
首先下载Sybase ASE 12.5的安装文件,下载地址为http://download.sybase.com/eval/ASE_1252_DE/ase1252_de_win.zip 另外还有Sybase ASE 12.5的客户端 ,当然在第一个下载地址中也包含了Sybase客户端,用户可以不用再专门下载客户端的。这次我们使用了2个VPC(Win2003的操作系统)来做该实验,1个安装运行Syb原创 2013-09-10 14:20:12 · 2730 阅读 · 0 评论 -
使用T-SQL配置日志传送
日志传送(log shipping)主要基于SQL Server代理,使用定时作业来完成,另外在配置日志传送之前必须要创建共享文件夹,用于辅助服务器访问。这里我们假设有数据库logTrans1需要进行日志传送,共享文件夹为“C:\data”,在T-SQL中配置日志传送主要有以下几步操作:(1)备份主数据库并在辅助服务器上还原主数据库的完整备份,初始化辅助数据库。具体操作如代码:backup原创 2013-09-10 14:20:57 · 758 阅读 · 0 评论 -
.Net+SQL Server企业应用性能优化笔记2——查找瓶颈
前面一篇文章中我已经对项目的基本情况进行了简单的介绍,今天就开始动手针对系统进行性能调优。在性能调优上面说实话我算是个菜鸟,并没有太多的经验和扎实的基础,所以有错误的地方希望大家指出。对于一个BS的系统来说,总共涉及到3个角色:Web服务器、数据库服务器和客户端。性能调优的第一步也是最重要的一步就是查找瓶颈。到底是Web服务器中的程序有问题还是数据库服务器上的SQL查询语句有问题,或者是客户端原创 2013-09-10 14:21:26 · 769 阅读 · 0 评论 -
.Net+SQL Server企业应用性能优化笔记4——精确查找瓶颈
前面几篇优化笔记写的太过概括,有朋友建议我把优化的步骤和方法写详细点,这篇比较我就详细讲解下使用ANTS Profiler+SQL Server Profiler查找瓶颈所在。首先我们需要部署一个测试环境,将Web项目的源代码拷到测试环境Web服务器IIS上,使得可以直接通过IE访问我们的网站。SQL Server环境可以部署在同一台机器上,条件允许的话有专门的数据库测试服务器那当然是更好,没原创 2013-09-10 14:21:31 · 1068 阅读 · 1 评论 -
如何将数据库从SQL Server迁移到MySQL
一、迁移Database Schema。 首先使用Sybase Powerdesigner的逆向工程功能,逆向出SQL Server数据库的物理模型。具体操作是在Powerdesigner中选择“File”,“Reverse Engine”再选择Database,将DBMS选择为SQL Server,如图: 然后选择数据源,也就是要具体连接到的SQL Server数据库服务器,然后选择要逆原创 2013-09-10 14:23:01 · 1122 阅读 · 0 评论 -
SQL server服务器大内存配置(转)
以前的服务器,由于内存的价格过高,一般配的内存不是很多,超过4G的当然就不多了.现在的服务器,配置超过4G就很多,在配作SQL数据库服务器后,很多的人只选默认的设置,虽然可以正常使用,可是却把大量的内存给浪费(SQL服务使用的内存不会超过1.8G),系统的性能也不能因为的大内存而提升,这是很可惜的. 在本文中,我大致讲一下配置的过程.(如果服务器的内存少于4G,不用配置)(网上完全讲这个的,原创 2013-09-10 14:19:52 · 962 阅读 · 0 评论 -
使用OPENXML函数将XML文档转换为行结果集
FOR XML子句都是将行结果集转换为XML结果集,那么如果想要将XML文档转换成行结果集,这时就要使用OPENXML函数。OPENXML在SQL Server 2000中就已经提供,但是在SQL Server 2005对该函数进行了增强。OPENXML的语法为:OPENXML( idoc int [ in] , rowpattern nvarchar [ in ] , [ flags原创 2013-09-10 14:20:01 · 1215 阅读 · 0 评论 -
SQL Server 2005与Oracle同步注意NUMBER类型转换
在前面的文章中我已经讲到使用同义词的方法来在SQL Server 2005下连接Oracle,我们可以使用同义词来实时访问Oracle数据库,但是如果Oracle中的表数据流较大则会影响应用系统的性能,于是我采用数据库作业每天定时执行: drop table abc--删除旧表goselect * into abcfrom aaa--aaa为同义词这样就可以把Oracle中原创 2013-09-10 14:20:03 · 1202 阅读 · 0 评论 -
SQL Server2012在程序开发中实用的一些新特性
SQL Server 2012已经发布一段时间了,最近在新的机器上安装了最新的SQL Server 2012 SP1,体检下感觉良好。官方给出了一大堆SQL2012相对于SQL2008R2的新特性,但是大多数对于普通开发人员来说都是浮云,根本用不到,下面就说说一些对于开发人员来说比较有用的新特性。一、增加了Sequence对象。这个对于Oracle用户来说是最熟悉不过的数据库对象了,现在在原创 2013-09-10 14:23:46 · 1933 阅读 · 0 评论