随笔分类 -  数据库方面

摘要:1. 去掉表的所有索引2. 用SqlBulkCopy进行插入3. 分表或者分区,减少每个表的数据总量4. 在某个表完全写完之后再建立索引5. 正确的指定索引字段6. 把需要用到的字段放到包含索引中(在返回的索引中就包含了一切)7. 查询的时候只返回所需的字段8. 复杂查询多使用临时表, select 阅读全文
posted @ 2020-05-25 18:24 gds111789 阅读(195) 评论(0) 推荐(0) 编辑
摘要://////////////////查询指定表外键约束select a.name as 约束名, object_name(b.parent_object_id) as 外键表, d.name as 外键列, object_name(b.referenced_object_id) as 主健表, c.name as 主键列 from sys.foreign_keys A inner join sy... 阅读全文
posted @ 2016-08-25 15:14 gds111789 阅读(4376) 评论(0) 推荐(0) 编辑
摘要:数据库事务(简称: 事务)是数据库管理系统执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成。当事务被提交给了DBMS(数据库管理系统),则DBMS(数据库管理系统)需要确保该事务中的所有操作都成功完成且其结果被永久保存在数据库中,如果事务中有的操作没有成功完成,则事务中的所有操作都需要被回滚 阅读全文
posted @ 2016-06-17 09:52 gds111789 阅读(2032) 评论(0) 推荐(0) 编辑
摘要:declare @temp table ( [id] int IDENTITY(1,1), [Name] varchar(10) ) --select * from @temp declare @tempId int,@tempName varchar(10)insert into ... 阅读全文
posted @ 2015-11-04 10:51 gds111789 阅读(1521) 评论(0) 推荐(0) 编辑
摘要:1. 在查询窗口执行,以下语句建立数据服务连接EXEC sp_addlinkedserver @server='DBVIP',--被访问的服务器别名(任意的名称) @srvproduct='', @provider='SQLOLEDB', @datasrc='... 阅读全文
posted @ 2014-10-24 11:33 gds111789 阅读(379) 评论(0) 推荐(0) 编辑
摘要:“因为数据库正在使用,所以无法获得对数据库的独占访问权”,终解决方案如下关键SQL语句:ALTER DATABASE [datebase] SET OFFLINE WITH ROLLBACK IMMEDIATE用完之后再ALTER database [ datebase] set online 第... 阅读全文
posted @ 2014-05-05 14:52 gds111789 阅读(179) 评论(0) 推荐(0) 编辑
摘要:如果你的数据库中某一个表中的数据满足以下几个条件,那么你就要考虑创建分区表了。 1、数据库中某个表中的数据很多。很多是什么概念?一万条?两万条?还是十万条、一百万条?这个,我觉得是仁者见仁、智者见智的问题。当然数据表中的数据多到查询时明显感觉到数据很慢了,那么,你就可以考虑使用分区表了。如果非要我说一个数值的话,我认为是100万条。 2、但是,数据多了并不是创建分区表的惟一条件,哪怕你有一千万条记录,但是这一千万条记录都是常用的记录,那么最好也不要使用分区表,说不定会得不偿失。只有你的数据是分段的数据,那么才要考虑到是否需要使用分区表。 3、什么叫数据是分段的?这个说法虽然很不专业,但很好理解 阅读全文
posted @ 2013-12-24 13:28 gds111789 阅读(717) 评论(2) 推荐(1) 编辑
摘要:1.分段统计分数 if object_id('[score]') is not null drop table [score]gocreate table [score]([学号] int,[课程编号] varchar(8),[成绩] int)insert [score]select 2006091... 阅读全文
posted @ 2013-10-09 18:11 gds111789 阅读(375) 评论(0) 推荐(0) 编辑
摘要:原文发布日期:2007.05.17作者:Mark Smith翻译:webabcd介绍我们一起来做个示例,在.NET中新建一个类,并在这个类里新建一个方法,然后在SQL Server中调用这个方法。按照微软所述,通过宿主 Microsoft .NET Framework 2.0 公共语言运行库 (CLR),SQL Server 2005显著地增强了数据库编程模型。 这使得开发人员可以用任何CLR语言(如C#、VB.NET或C++等)来写存储过程、触发器和用户自定义函数。我们如何实现这些功能呢?为了使用CLR,我们需要做如下几步: 1、在.NET中新建一个类,并在这个类里新建一个public方法。 阅读全文
posted @ 2012-03-10 14:19 gds111789 阅读(322) 评论(0) 推荐(0) 编辑
摘要:近期因工作需要,希望比较全面的总结下SQL SERVER数据库性能优化相关的注意事项,在网上搜索了一下,发现很多文章,有的都列出了上百条,但是仔细看发现,有很多似是而非或者过时(可能对SQL SERVER6.5以前的版本或者ORACLE是适用的)的信息,只好自己根据以前的经验和测试结果进行总结了。我始终认为,一个系统的性能的提高,不单单是试运行或者维护阶段的性能调优的任务,也不单单是开发阶段的事情,而是在整个软件生命周期都需要注意,进行有效工作才能达到的。所以我希望按照软件生命周期的不同阶段来总结数据库性能优化相关的注意事项。一、分析阶段一般来说,在系统分析阶段往往有太多需要关注的地方,系统各 阅读全文
posted @ 2012-02-16 10:35 gds111789 阅读(411) 评论(0) 推荐(0) 编辑
摘要:一直想找一些关于SQL语句性能调试的权威参考,但是有参考未必就能够做好调试的工作。我深信实践中得到的经验是最珍贵的,书本知识只是一个引导。本篇来源于《Inside Microsoft SQL Server 2008》,有经验的高手尽管拍砖把。这个部分将讲解一些性能分析工具,这些性能分许主要关注在执行计划。缓存执行计划SQL Server 2008提供了一些服务器对象来分析执行计划Sys.dm_exec_cached_plans: 包含缓存的执行计划,每个执行计划对应一行。Sys.dm_exec_plan_attributes:这是一个系统函数,每一个执行计划都对应着一些属性,在这个系统函数中. 阅读全文
posted @ 2012-02-16 10:16 gds111789 阅读(536) 评论(0) 推荐(0) 编辑
摘要:sqlserver阻塞定位很多人都遇到过这样的情况,当网站达到一定的访问量,数据库就会成为瓶颈,进而引起阻塞。有人认为这可能就是硬件的极限了,于是想办法增加硬件设备。而我本人认为问题的元凶可能是性能不高的sql脚本,引起了阻塞。如果你和我有相同的看法,那我们就一起想办法找出问题的源头。案例1.某一天我被告知,我们的书城网站不能访问了,我马上查看,发现书城的有两台iis服务器均显示service unavailable,我初步断定是sqlserver数据库发生了阻塞,因为同一套程序使两台iis服务器同时当机的可能性不大。要知道是否发生了阻塞,当然要看master库的sysprocess表,看看是 阅读全文
posted @ 2012-02-14 11:52 gds111789 阅读(268) 评论(0) 推荐(0) 编辑
摘要:一、定义变量?--简单赋值declare @a intset @a=5print @a--使用select语句赋值declare @user1 nvarchar(50)select @user1='张三'print @user1declare @user2 nvarchar(50)select @user2 = Name from ST_User where ID=1print @user2--使用update语句赋值declare @user3 nvarchar(50)update ST_User set @user3 = Name where ID=1print @user 阅读全文
posted @ 2011-12-09 08:15 gds111789 阅读(376) 评论(1) 推荐(0) 编辑
摘要:简介 在SQL Server中,索引是一种增强式的存在,这意味着,即使没有索引,SQL Server仍然可以实现应有的功能。但索引可以在大多数情况下大大提升查询性能,在OLAP中尤其明显.要完全理解索引的概念,需要了解大量原理性的知识,包括B树,堆,数据库页,区,填充因子,碎片,文件组等等一系列相关知识,这些知识写一本小书也不为过。所以本文并不会深入讨论这些主题。索引是什么 索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。 精简来说,索引是一种结构.在SQL Server中,索引和表(这里指的是加了聚集索引的表)的存储结构是一样的,都是B树,B树是一 阅读全文
posted @ 2011-11-28 15:59 gds111789 编辑
摘要:SQL2005实现全文检索的步骤是什么?SQL2005实现全文检索的步骤是什么? 与SQL2000的全文检索实现有什么不同?答案:具本步骤为(括号内为每步所调用的存储过程名称):(1)启动数据库的全文处理功能(sp_fulltext_datebase);(2)建立全文目录(sp_fulltext_catalog);(3)在全文目录中注册需要全文索引的表(sp_fulltext_table);(4)指出表中需要全文检索的列名(sp_fulltext_column)(5)为表创建全文索引(sp_fulltext_table);(6)填充全文索引(sp_fulltext_catalog)。例:use 阅读全文
posted @ 2011-08-02 11:18 gds111789 阅读(592) 评论(0) 推荐(0) 编辑
摘要:取分组后的按时间排序的前两条数据Select 字段1,...,字段n From (Select *,(Select Count(*) From 订单表 as a Where a.客户ID = 订单表.客户ID And a.订单日期> =订单表.订单日期) as 序号 From 订单表 ) as b Where 序号 <=2 阅读全文
posted @ 2011-07-11 17:10 gds111789 阅读(1136) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示