Joshua.Lang

目前只专注于WEB技术...

2009年05月19日

原创 SQLSERVER SQL性能优化


1.选择最有效率的表名顺序(只在基于规则的优化器中有效)    
   SQLSERVER的解析器按照从右到左的顺序处理FROM子句中的表名,因此FROM子句中写在最后的表(基础表driving table)将被最先处理,在FROM子句中包含多个表的情况下,必须选择记录条数最少的表作为基础表,当SQLSERVER处理多个表时,会运用排序及合并的方式连接它们,

   首先,扫描第一个表(FROM子句中最后的那个表)并对记录进行排序;然后扫描第二个表(FROM子句中最后第二个表);最后将所有从第二个表中检索出的记录与第一个表中合适记录进行合并

   例如: 表 TAB1 16,384 条记录表 TAB2 5 条记录,选择TAB2作为基础表 (最好的方法) select count(*) from tab1,tab2 执行时间0.96秒,选择TAB2作为基础表 (不佳的方法) select count(*) from tab2,tab1 执行时间26.09秒;

如果有3个以上的表连接查询,那就需要阅读全文>

发表于 @ 2009年05月19日 13:59:00|评论(loading...)|举报|收藏

2009年05月17日

转载 大数据量分页存储过程效率测试附代码

在项目中,我们经常遇到或用到分页,那么在大数据量(百万级以上)下,哪种分页算法效率最优呢?阅读全文>

发表于 @ 2009年05月17日 10:54:00|评论(loading...)|举报|收藏

2009年05月14日

转载 海量数据库的查询优化及分页算法方案


随着“金盾工程”建设的逐步深入和公安信息化的高速发展,公安计算机应用系统被广泛应用在各警种、各部门。与此同时,应用系统体系的核心、系统数据的存放地――数据库也随着实际应用而急剧膨胀,一些大规模的系统,如人口系统的数据甚至超过了1000万条,可谓海量。那么,如何实现快速地从这些超大容量的数据库中提取数据(查询)、分析、统计以及提取数据后进行数据分页已成为各地系统管理员和数据库管理员亟待解决的难题。
在以下的文章中,我将以“办公自动化”系统为例,探讨如何在有着1000万条数据的MS SQL SERVER数据库中实现快速的数据提取和数据分页。以下代码说明了我们实例中数据库的“红头文件”一表的部分数据结构:
CREATE TABLE [dbo].[TGongwen] (    --TGongwen是红头文件表名

   [Gid] [int] IDENTITY (1, 1) NOT NULL ,
--本表的id号,也是主键

   [title] [varchar] (80) COLLATE Chinese_PR阅读全文>

发表于 @ 2009年05月14日 12:13:00|评论(loading...)|举报|收藏

转载 如何加快查询,优化数据库


如何加快查询速度?
1、升级硬件 
2、根据查询条件,建立索引,优化索引、优化访问方式,限制结果集的数据量。
3、扩大服务器的内存
4、增加服务器CPU个数
5、对于大的数据库不要设置数据库自动增长,它会降低服务器的性能
6、在查询Select语句中用Where字句限制返回的行数,避免表扫描,如果返回不必要的数据,浪费了服务器的I/O资源,加重了网络的负担降低性能。如果表很大,在表扫描的期间将表锁住,禁止其他的联接访问表,后果严重。
7、查询时不要返回不需要的行、列
8、用select   top   100   /   10   Percent   来限制用户返回的行数或者SET   ROWCOUNT来限制操作的行
9、在IN后面值的列表中,将出现最频繁的值放在最前面,出现得最少的放在最后面,减少判断的次数
10、一般在GROUP   BY   个HAVING字句之前就能剔除多余的行,所以尽量不要用它们来做剔除行的工作。他们的执行顺序应该如下最优:
阅读全文>

发表于 @ 2009年05月14日 10:27:00|评论(loading...)|举报|收藏

2009年05月12日

转载 ASP.NET2.0(C#)Membership和Profile系列1-数据库的设置

ASP.NET 2.0中新增的最佳功能之一是新的成员身份服务,它提供了用于创建和管理用户帐户的易于使用的API。ASP.NET 1.x大规模引入了窗体身份验证,但仍然要求您编写相当数量的代码来执行实际操作中的窗体身份验证。成员身份服务填补了ASP.NET 1.x窗体身份验证服务的不足,并且使实现窗体身份验证变得比以前简单得多。   成员身份API通过两个新的类公开:Membership和MembershipUser。前者包含了用于创建用户、验证用户以及完成其他工作的静态方法。MembershipUser代表单个用户,它包含了用于检索和更改密码、获取上次登录日期以及完成类似工作的方法和属性。通过这两个新的类,我们可以不用写一行代码,方便得完成对用户的管理。阅读全文>

发表于 @ 2009年05月12日 14:16:00|评论(loading...)|举报|收藏

转载 考察ASP.NET 2.0的Membership, Roles和Profile

ASP.NET 2.0的Membership, Roles和Profile系统设计成使用provider模式。ASP.NET使用一个provider在SQL Server或Active Directory里对进行members 和 roles信息进行管理。另外我们还可以从微软下载其它的providers,将membership 和 role信息存储在一个Microsoft Access数据库里(见Part 8部分).本系列的大部分文章将焦点放在SQL Server provider(比如SqlMembershipProvider, SqlRoleProvider,和SqlProfileProvider)上,诚然,对基于Internet的web应用程序而言, SQL Server providers是上佳之选,但如果是企业内部网(intranet)的话,使用Active Directory provider要更常见一些. 这些SQL Server provider在指定的SQL Server数据库里创建一系列的表、视图和存储过程,因此当使用这些provider时,我们可以通过T-SQL阅读全文>

发表于 @ 2009年05月12日 14:14:00|评论(loading...)|举报|收藏

用户操作
[即时聊天] [发私信] [加为好友]
Joshua
订阅我的博客
XML聚合  FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
文章分类
收藏
技术战友
可人朋友
我的地盘
身在博客园(RSS)
存档
软件项目交易
Csdn Blog version 3.1a
Copyright © Joshua