分类

链接

2024 年 11 月
 123
45678910
11121314151617
18192021222324
252627282930  

近期文章

热门标签

新人福利,免费薅羊毛

全文索引-海量数据模糊查询

  1.全文检索(Full-Text Indexes)可以对varchar,text,image型字段进行检索,但一个表最多只能建一个全文索引   2.如果使用传统的模糊搜索会降低数据库的性能,选择全文索引来解决是比较好的方法!   3.创建全文索引演示   (1)打开全文索引支持,启动SQL Server的全文搜索服务       use 数据库名字 go execute sp_fulltext_database 'enable'   (2)建表和初始化数据(说明:测试数据库名称为:myDBTest,测试表名称为:My_FullText)   --建表   USE [myD...

SQL Server 暂无评论 阅读(2,304)

SQL语句编译原理

由于最近需要做一些sql query性能提升的研究,因此研究了一下sql语句的解决过程。在园子里看了下,大家写了很多相关的文章,大家的侧重点各有不同。本文是我在看了各种资 料后手机总结的,会详细的,一步一步的讲述一个sql语句的各个关键字的解析过程,欢迎大家互相学习。   SQL语句的解析顺序   简单的说一个sql语句是按照如下的顺序解析的:   1. FROM FROM后面的表标识了这条语句要查询的数据源。和一些子句如,(1-J1)笛卡尔积,(1-J2)ON过滤,(1-J3)添加外部列,所要应用的对象。FROM...

SQL Server 暂无评论 阅读(5,309)

网摘:SQL Server查询性能优化

不要认为只要有负向查询出现在查询条件WHERE子句中 就一定认为索引就没有效用,在WHERE子句中使用非SARG并不一定导致全表扫描或是聚集索引扫描。SQL SERVER可以在某些非SARG状况中使 用索引,以及查询中虽然包含了部分非SARG但仍可以对此查询中的SARG部分使用索引。 也不要认为在查询语句中的查询条件WHERE子句中使用 SARG就一定会使用到相应的索引,而不会进行全表扫描或聚集索引扫描。SQL SERVER查询优化程序会根据SARG使用情况所获取的查询结果的记录 数量是否过多,而决定是使用相应的索引,还是使用全表扫描...

SQL Server 暂无评论 阅读(1,626)

SQL参数化查询为什么能够防止SQL注入

很多人都知道SQL注入,也知道SQL参数化查询可以防止SQL注入,可为什么能防止注入却并不是很多人都知道的。 本文主要讲述的是这个问题,也许你在部分文章中看到过这块内容,当然了看看也无妨。   首先:我们要了解SQL收到一个指令后所做的事情: 具体细节可以查看文章:Sql Server 编译、重编译与执行计划重用原理 在这里,我简单的表示为: 收到指令 -> 编译SQL生成执行计划 ->选择执行计划 ->执行执行计划。 具体可能有点不一样,但大致的步骤如上所示。   接着我们来分析为什么拼接SQL 字符...

SQL Server 暂无评论 阅读(1,855)

Sql Server参数化查询之where、in、like实现详解

身为一名小小的程序猿,在日常开发中不可以避免的要和where in和like打交道,在大多数情况下我们传的参数不多简单做下单引号、敏感字符转义之后就直接拼进了SQL,执行查询,搞定。若有一天你不可避免的需要 提高SQL的查询性能,需要一次性where in 几百、上千、甚至上万条数据时,参数化查询将是必然进行的选择。然而如何实现where in和like的参数化查询,是个让不少人头疼的问题。 where in 的参数化查询实现 首先说一下我们常用的办法,直接拼SQL实现,一般情况下都能满足需要 string userIds = "1,2,3,4"; u...

SQL Server 评论(2) 阅读(2,905)

Sql Server编译原理

当 Sql Server 收到任何一个指令,包括:查询、批处理、存储过程、触发器、预编译指令和动态SQL Server语句,要完成语法解析、语义分析,然后再进行"编译",生成能够运行的"执行计划"。在编译的过程中,SQL Server 会根据所涉及的对象的架构、统计信息,以及指令的具体内容,估算可能的执行计划,以及它们的成本,最后选择一个SQL Server认为成本最低的语句。 执行计划生成之后,SQL Server 通常会把它们缓存到内存里,术语统称它们叫“Plane Cache”。以后同样的语句执行,SQL Server就可以使用同样的执行计划,而...

SQL Server 评论(5) 阅读(6,181)

SQL查询性能分析之(not in)、(and not)、()、(!=)性能比较

在与朋友讨论查询时引出了not in 与and not两种踢出方法,相互的口舌之争之后我决定动手来查查看,他们到底有什么区别,谁的执行效率更高,今后该如何选择性能最优的查询条件。由于本人能力有 限,肚子中的墨水有限,所以本文有什么错误之处还望各位前辈指出。       在使用sql中我们会有各种各样的条件筛选,常见的就是要踢出一部分我们不需要的数据,在where后面的踢出方法常见的有 (not in  / and not / <> / !=) 这四种方法,既然存在这样四种方法,那么我们又该如果选择最佳方法呢?下面我们就一起...

SQL Server 评论(1) 阅读(7,775)

在存储过程中调用WebService

1 create procedure usp_CallWebServices 2 ( 3 @parameter nvarchar(500)=null 4 ) 5 as 6 Declare @obj int 7 Declare @SvercieUrl nvarchar(200) 8 Declare @response nvarchar(max) 9 10 11 Set @SvercieUrl = 'http://locahost/webservices/service.asmx/saludar?param='+@parameter 12 13 14 Execute sp_OACreate 'MSXML2.ServerXMLHttp',@obj out 15 Execute sp_OAMethod @obj,'open',null,'Get',@SvercieUrl,false 16 Execute sp_OAMethod @obj,'...

SQL Server 暂无评论 阅读(3,306)

sql server使用ROW_NUMBER分页

  ALTER PROC usp_GetPageList     (       @tableName VARCHAR(20) ,       @selectColunms VARCHAR(1000) ,       @sortColumn VARCHAR(50) ,       @sortType VARCHAR(4) ,       @pageIndex INT ,       @pageSize INT     ) AS  BEGIN         DECLARE @sql NVARCHAR(4000)     SET @sql = '     SELECT  *     FROM    ( SELECT    ROW_NUMBER() OVER ( ORDER BY '+ @sortColumn +' '+ @sortType +' ) AS orderIndex ,                         ' + @selectColunms + '               FROM      ' + @...

SQL Server 暂无评论 阅读(1,841)

SQL Server作业示例

公司有一个老项目由于直接把终端拍摄的图片以二进制的形式保存到数据库中,数据库比较大所以需要经常删除这些冗余数据,手动删除费时费力,组长让我 把这些操作变成自动的,每天执行一次,只保留最近两个月的图片数据。查阅了相关的资料,找到了解决方案,在此做一个记录,以便有同样需求的人和自己查阅。 现在我们通过一个非常简单的示例:有一张员工表,我们定时往里面添加一条数据。通过示例来了解如何使用Sql Server的作业任务进行定时删除数据的操作: 表结构: 1.开启SQL Server Agent服务 使用作业需要SQL Ag...

SQL Server 暂无评论 阅读(1,656)