数据库
Vezn
目前专注.net开发
-----开发语言是工具,用好了都牛逼。
展开
-
存储过程
转载自博客园,仅供学习参考----------------------------------------Transact-SQL中的存储过程,非常类似于Java语言中的方法,它可以重复调用。当存储过程执行一次后,可以将语句缓存中,这样下次执行的时候直接使用缓存中的语句。这样就可以提高存储过程的性能。Ø 存储过程的概念 存储过程Procedure是一组为了完成特定功能的转载 2015-04-19 21:33:42 · 367 阅读 · 0 评论 -
利用sp_addlinkedserver实现远程数据库链接
--查看当前链接情况:select * from sys.servers;--使用 sp_helpserver 来显示可用的服务器Exec sp_helpserver--删除已经存在的某个链接Exec sp_droplinkedsrvlogin服务器别名,NullExec sp_dropserver 服务器别名--使用sp_addlinkedserver来增加链接E转载 2017-04-19 09:12:01 · 353 阅读 · 0 评论 -
sql中详解round(),floor(),ceiling()函数实例
round() 遵循四舍五入把原值转化为指定小数位数,如round(1.45,0) = 1;floor()向下舍入为指定小数位数 如:floor(1.45)= 1;ceiling()向上舍入为指定小数位数 如:ceiling(1.45) = 2;原创 2016-11-25 17:39:08 · 3004 阅读 · 0 评论 -
sql server调试sql执行时间的几个方法
set statistics profile on set statistics io on set statistics time on go --写SQL语句的地方SELECT * FROM [dbo].[DT_CVPrice]go set statistics profile off set statistics io off set statistics time o原创 2016-11-25 00:18:46 · 529 阅读 · 0 评论 -
sql server之Merge的使用
Merge关键字是一个神奇的DML关键字。它在SQL Server2008被引入,它能将Insert,Update,Delete简单的并为一句。MSDN对于Merge的解释非常的短小精悍:”根据与源表联接的结果,对目标表执行插入、更新或删除操作。例如,根据在另一个表中找到的差异在一个表中插入、更新或删除行,可以对两个表进行同步。”,通过这个描述,我们可以看出Merge是关于对于两个表之间的数据转载 2016-11-25 00:17:59 · 488 阅读 · 0 评论 -
sql中truncate,delete和drop区别
delete算是最常用的数据操作语句,而drop也并不陌生,truncate这个可能用的比较少,想对这三个做进一步了解,所以在网上找了相关资料,有一篇写的不错的,因此转载过来记录学习。TRUNCATE TABLE 在功能上与不带 Where 子句的 Delete语句相同:二者均删除表中的全部行。但 TRUNCATE TABLE 比 Delete 速度快,且使用的系统和事务日志资源少转载 2016-11-25 00:17:09 · 438 阅读 · 0 评论 -
SQL CHARINDEX 函数、PATINDEX 函数、stuff函数
CHARINDEX 函数返回字符或者字符串在另一个字符串中的起始位置。CHARINDEX 函数调用方法如下:CHARINDEX ( expression1 , expression2 [ , start_location ] ) Expression1 是要到 expression2 中寻找的字符中,start_location 是 CHARINDEX 函数开始在 expressi原创 2016-11-25 00:16:16 · 420 阅读 · 0 评论 -
sql server在执行批处理时出现错误。错误消息为: 目录名无效
今天在客户服务器上的sql server上执行脚本,报错提示“在执行批处理时出现错误。错误消息为:目录名无效”,第一反应就是客户是不是在服务器装了360,因为之前有类似问题,360把数据库的文件给隔离了导致出错。的确,客户装了360。然后找了下解决方案,找到了解决方案,特别记录下来。C:\Users\Administrator\AppData\Local\Temp\ 下新建 文件夹 命名原创 2016-12-06 08:56:25 · 5834 阅读 · 0 评论 -
sql中with nocheck的作用
要添加一个约束,但是又不将其应用到已存在的数据中,恶意在执行ALTER TABLE语句添加时使用WITH NOCHECK选项,这样新增的约束就不会去处理已存在的数据,而只会对新增的数据进行约束检查,具体语法如下ALTER TABLE PRODUCTS WITH NOCHECK ADD CONSTRAINT CM_SPORTSSTORE_PRICE CHECK (PRICE>0)原创 2016-11-19 00:27:09 · 6731 阅读 · 1 评论 -
无意中看到的文章,简单而又可怕的拼接SQL造成的意想不到的后果,转来记录下
虽然公司有要求sql语句要调用ORM的方法处理,就算自己写也要参数化,但还是有些地方会没用注意到,看到下面的文章,惊出冷汗!----------------------------------------------------------------------------- 执行数据操作时,由于拼接SQL存在种种弊端,早就应该抛弃了,但在现实开发时,又由于种种原因,公司一直采用转载 2016-07-22 15:46:58 · 883 阅读 · 0 评论 -
SQL性能优化【转】
1.查询的模糊匹配 尽量避免在一个复杂查询里面使用 LIKE '%parm1%'—— 红色标识位置的百分号会导致相关列的索引无法使用,最好不要用。 解决办法: 其实只需要对该脚本略做改进,查询速度便会提高近百倍。改进方法如下: a、修改前台程序——把查询条件的供应商名称一栏由原来的文本输入改为下拉列表,用户模糊输入供应商名称时,直接在前台就帮忙定位到具体的供应商转载 2016-06-09 00:01:11 · 290 阅读 · 0 评论 -
[转]SQL join中on与where区别
on、where、having的区别1、on、where、having这三个都可以加条件的子句中,on是最先执行,where次之,having最后。有时候如果这先后顺序不影响中间结果的话,那最终结果是相同的。但因为on是先把不符合条件的记录过滤后才进行统计,它就可以减少中间运算要处理的数据,按理说应该速度是最快的。2、where应该比having快点的,因为它过滤数据后才进行sum,所以h转载 2016-02-17 17:03:50 · 365 阅读 · 0 评论 -
.NET批量大数据插入性能分析及比较(6.使用表值参数)
表值参数(Table-valued Parameter)是SQL Server 2008增加的新特性,可以将DataTable做为参数传递给存储过程。 数据库执行脚本如下CREATE TYPE TestType AS TABLE( Id int NOT NULL ,Name nvarchar(20) NOT NULL)CREATE PROC Inse转载 2015-05-06 23:31:25 · 643 阅读 · 0 评论 -
.NET批量大数据插入性能分析及比较(5.使用SqlBulkCopy)
[c-sharp] view plaincopy#region 使用SqlBulkCopy public static bool ExecuteTransactionScopeInsert(DataTable dt, int batchSize) { int count = dt.Rows.C转载 2015-05-06 23:19:40 · 425 阅读 · 0 评论 -
.NET批量大数据插入性能分析及比较(4.使用DataAdapter批量插入)
#region 使用DataAdapter public static bool ExecuteDataAdapterInsert(DataTable dt, int batchSize) { int count = dt.Rows.Count; bool flag = false; try { SqlCon转载 2015-05-06 23:20:59 · 617 阅读 · 0 评论 -
.NET批量大数据插入性能分析及比较(3.使用事务)
[c-sharp] view plaincopy#region 拼接sql语句并使用Transaction public static bool ExecuteTransactionInsert(DataTable dt, int batchSize) { int count = dt.Rows.Count; Stri转载 2015-05-06 23:17:33 · 1109 阅读 · 0 评论 -
.NET批量大数据插入性能分析及比较(2.普通插入与拼接sql批量插入)
首先自然是遍历DataTable逐条数据插入 [c-sharp] view plaincopypublic class DbOperation { private static string connectionString = ConfigurationManager.ConnectionStrings["Con转载 2015-05-06 22:38:53 · 521 阅读 · 0 评论 -
.NET批量大数据插入性能分析及比较(1.准备工作)
数据插入使用了以下几种方式1. 逐条数据插入2. 拼接sql语句批量插入3. 拼接sql语句并使用Transaction4. 拼接sql语句并使用SqlTransaction5. 使用DataAdapter6. 使用TransactionScope及SqlBulkCopy7. 使用表值参数 数据库使用SQL Server,脚本如下 c转载 2015-05-06 22:39:44 · 587 阅读 · 0 评论 -
sqlserver特殊表
SELECT * FROM syscolumns SELECT * FROM sysobjects SELECT * FROM sys.indexes SELECT * FROM sys.index_columns SELECT * FROM sys.key_constraintsSELECT * FROM sys.types 可根据以上表组合获取表字段相关信息原创 2017-07-03 23:42:39 · 454 阅读 · 0 评论