SqlServer

深入讨论SQL Server 表的主键问题

关于数据库的逻辑设计,是一个很广泛的问题。本文主要针对开发应用中遇到在MSSQLServer上进行表设计时,对表的主键设计应注意的问题以及相应的解决办法。主键设计现状和问题关于数据库表的主键设计,一般而言,是根据业务需求情况,以业务逻辑为基础,形成主键。比如,销售时要记录销售情况,一般需要两个表,一个是销售单的概要描述,记录诸如销售单号、总金额一类的情况,另外一个表记录每种商品的数量和金额。对于第一个表(主表),通常我们以单据号为主键;对于商品销售的明细表

系统 2019-08-12 01:53:42 2536

SqlServer

如何使用OPENQUERY访问另一个SQL Server

原文:如何使用OPENQUERY访问另一个SQLServer在项目中,经常会遇到一个数据库访问另一个数据库,【CNVFERPDB】为服务器名,【CE3】为库名1SELECTDtl.*2FROMCNVFERPDB.CE3.ce3.ZTLE0125Dtl3INNERJOINCNVFERPDB.CE3.ce3.ZTLE0124Mst4ONDtl.RECVSUPPNO=Mst.RECVSUPPNOANDDtl.MANDT=Mst.MANDT5WHEREMst.MA

系统 2019-08-12 01:33:11 2536

SqlServer

关于SQL Server数据库中的标识列

一、标识列的定义以及特点SQLServer中的标识列又称标识符列,习惯上又叫自增列。该种列具有以下三种特点:1、列的数据类型为不带小数的数值类型2、在进行插入(Insert)操作时,该列的值是由系统按一定规律生成,不允许空值3、列值不重复,具有标识表中每一行的作用,每个表只能有一个标识列。由于以上特点,使得标识列在数据库的设计中得到广泛的使用。二、标识列的组成创建一个标识列,通常要指定三个内容:1、类型(type)在SQLServer2000中,标识列类型

系统 2019-08-12 01:52:35 2535

SqlServer

SQL Server管理员专用连接的使用

原文:SQLServer管理员专用连接的使用作为一名DBA,经常会处理一些比较棘手的服务无响应问题,鉴于事态的严重性,多数DBA可能直接用“重启”大法,以便尽快的恢复生产环境的正常运转,但是多数情况下我们却无法究其原因,即使产生了dump文件,没有微软的支持,我们同样被蒙在鼓里,幸好微软给我们留了一条“后路”,供我们在SQL服务无法连接时,使用它连接并查看“病因”,那就是DAC,dedicatedadministratorconnection,管理员专用连

系统 2019-08-12 01:54:46 2534

SqlServer

监控 SQL Server 的运行

MicrosoftSQLServer2005提供了一些工具来监控数据库。方法之一是动态管理视图。动态管理视图(DMV)和动态管理函数(DMF)返回的服务器状态信息可用于监控服务器实例的运行状况、诊断问题和优化性能。常规服务器动态管理对象包括:dm_db_*:数据库和数据库对象dm_exec_*:执行用户代码和关联的连接dm_os_*:内存、锁定和时间安排dm_tran_*:事务和隔离dm_io_*:网络和磁盘的输入/输出此部分介绍为监控SQLServer运

系统 2019-08-12 01:32:46 2534

SqlServer

SQL Server 无法修改表,超时时间已到

SQLServer一张表存储大量数据的时候,对表结构作修改就非常耗时了。其实耗时还好说,我们年轻,有的是时间……最怕的是它觉得太耗时就放弃给你修改了。这几天想给某个表加个字段,就遇到了这样的问题。点了保存后过一段时间,就会弹出个对话框说:无法修改表。超时时间已到,在操作完成之前超时时间已过或服务器未响应解决办法:在SQLServerManagementStudio里,通过菜单“工具-选项”打开选项对话框。在左侧寻找“设计器-表设计器和数据库设计器”,然后在

系统 2019-08-12 01:54:16 2533

SqlServer

MSSQL 数字钱转化为大写

--说明:--1.本函数范围从毫~兆--2.有四种精度(元,角,分,厘,毫)--3.有三种进位规则(四舍五入,接舍去,非0就入)--参数说明:dbo.MoneyToCapital(数值,进位,精度)--进位(0四舍五入,1直接舍去,2非0就入)--精确度(0元,1角,2分,3厘,4毫)---------------------------------------------------------------------------------------

系统 2019-08-12 01:54:01 2533

SqlServer

在SQLSERVER中,决定当前会话的SET配置

出处:http://www.cnblogs.com/fly_zj/archive/2010/07/07/1772818.html原文为DeterminingSETOptionsforaCurrentSessioninSQLServer问题?对于每个连接到SQLSERVER上的会话(Session),用户能够设置SET选项来影响查询的结果和SQLSERVER潜在的行为,有些选项能通过GUI来设置,有些需要通过SET命令来设置,使用GUI非常方便知道某个设置开

系统 2019-08-12 01:33:17 2532

SqlServer

MSSQL:修改tempdb设置增加DW性能

TempDB在DW中变得非常重要,因为要进行大量的运算,如果内存不够数据就会放在TempDB中1.把TempDB移动到高性能的磁盘上。2.增加tempdb的大小3.把AutoShrink设置为FalseMSSQL:修改tempdb设置增加DW性能

系统 2019-08-12 01:33:28 2531

SqlServer

SQL Server 2008 R2 性能计数器详细列表(五)

原文:SQLServer2008R2性能计数器详细列表(五)SQLServer:SQLStatistics对象:监视编译和发送到SQLServer实例的请求类型SQLServerSQLStatistics计数器说明Auto-ParamAttempts/sec每秒的自动参数化尝试数。其总数应为失败的、安全的和不安全的自动参数化尝试之和。当SQLServer实例尝试通过将某些文字替换为参数来参数化Transact-SQL请求时,就会进行自动参数化,这样可以对多

系统 2019-08-12 01:51:36 2529

SqlServer

使用JDBC连接SQL SERVER 2008的方法

使用JDBC连接SQLSERVER2008,很多人都在问,我自己也测试几次,发现按照以前的方法连接会出现一点小问题。原因在于,SQLSERVER2008采用了动态端口的机制,按照以前的方法连接会报告连接不了,其实端口写对了完全没有问题。连接方法如下:1,微软目前没有发布针对SQLServer2008专用的JDBC驱动程序,使用SQLServer2005的就可以了,但是,需要注意:SQLServer2008的新功能无法使用,这个必须等专用的JDBC发布之后才

系统 2019-08-12 01:53:04 2528

SqlServer

SQL Server 2008 性能调优 optimize for ad hoc

参数化和即席查询,都是一个二难的选择。一旦选择参数化就有可能带来一种情况就是执行计划反复被利用。不会通过收集现有的统计信息,出一个比较优异的执行计划。即席查询也就是adhocquery,每次都需要重编译,花费比较大。这个是一个2难,需要平衡。对于这个问题sqlserver有简单参数化,强制参数化和2008才有的optimizeforadhocworkloads。optimizeforadhocworkloads的原理大概如此:当你第一次执行adhoc查询的

系统 2019-08-12 01:33:33 2528

SqlServer

SQLServer 扫盲

谨以本文记录本人成长历程,并分享给各位SQLServer数据库管理系统使用者。本系列包含个人认为一个DBA应该具有的各项素质,系列文章将以下面列表展示,将持续更新,敬请留意及指导,谢谢。下列文章具有一定的优先级,但是并不代表完全不可逆,根据工作需要,可能不会按照顺序来写,已写部分可以通过下面超链接点击:第一篇:DBA第一要务——备份还原本篇包含下面主题:备份基础完整备份差异备份日志备份其他类型备份还原基础完整恢复差异恢复日志恢复其他类型恢复优化备份还原灾难

系统 2019-08-12 01:52:35 2526

SqlServer

MS-SQLSERVER中的MSDTC不可用解决方法

今天在本地机直接在触发器里更新还有一台服务器数据时出现:MSDTC不可用解决的方法:在windows控制面版-->管理工具-->服务-->DistributedTransactionCoordinator-->属性-->启动1.A.不用事务,关用SELECT语句.能否够分布式查询?B.LINKSERVER在做分布式更新事务时不能对本机操作.(就是不能环回分布式事务)C.DBCCTRACEON(3604,7300)--用跟踪看更具体错误信息.D.下载MS提供

系统 2019-08-12 01:51:56 2526

SqlServer

SQL Server提高并发查询效率

同事写了个程序用创建多个线程使用ado同时对同个数据库进行相同的查询,涉及2张数据表的联查。当线程数非常多的情况下,读取数据的效率就会变得很慢,例如50个线程同时查询大概3000条数据,查询完成后通过游标全部读取到本地需要大概30秒。单个线程可能就一两秒。这是由于数据库锁导致的。同样的程序在我的机子上运行性能提高了1倍。主要原因由于我连接的sqlserver是企业版的,而同事那个连接的数据库是开发版的,企业版的sqlserver对并发访问做了一定的优化。但

系统 2019-08-12 01:51:51 2526