月归档:五月 2011

IIS7.5 双重转义序列请求

1,在web.config里添加如下配置节 <system.webServer>     <security>       <requestFiltering allowDoubleEscaping=”true”/>     </security>   </system.webServer> 2,建议使用第一种方法,修改站点的web.config. 或者直接在命令行下输入: appcmd set config /section:requestfiltering /allowdoubleescaping:true

发表在 Net | 评论关闭

IIS7下通过web.config配置伪静态

在IIS7配置伪静态非常简单,只需在web.config文件里添加如下配置节 <system.webServer>     <handlers>       <add name=”URL” path=”*.htm” verb=”GET,POST” modules=”IsapiModule” scriptProcessor=”%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll” resourceType=”Unspecified” preCondition=”classicMode,runtimeVersionv2.0,bitness32″ />     </handlers>   </system.webServer>

发表在 Net | 评论关闭

如何解决SQL孤立用户

症状     当您将数据库备份恢复到另一台服务器时,可能会遇到孤立用户的问题。SQL Server 联机丛书中的孤立用户疑难解答主题中没有讲述解决此问题的具体步骤。Microsoft 已经确认这是在本文开头列出的 Microsoft 产品中存在的问题。 更多信息     虽然术语“登录”和“用户”经常交换使用,但它们之间有很大的不同。登录用于用户身份验证,而数据库用户帐户用于数据库访问和权限验证。登录通过安全识别符 (SID) 与用户关联。访问 SQL Server 服务器需要登录。验证特定登录是否有效的过程称为“身份验证”。登录必须与 SQL Server 数据库用户相关联。您使用用户帐户控制数据库中执行的活动。如果数据库中不存在针对特定登录的用户帐户,使用该登录的用户即使能够连接到 SQL Server 服务器,也无法访问数据库。但是,该情形的唯一例外是当数据库包含“guest”用户帐户时。与用户帐户不关联的登录将被映射到 guest 用户。相反,如果存在数据库用户,但没有与其关联的登录,则该用户将无法登录到 SQL Server 服务器中。     将数据库恢复到其他服务器时,数据库中包含一组用户和权限,但可能没有相应的登录或者登录所关联的用户可能不是相同的用户。这种情况被称为存在“孤立用户”。 孤立用户疑难解答     当您将数据库备份恢复到另一台服务器时,可能会遇到孤立用户的问题。以下情形说明了该问题并阐述如何加以解决。 1. 向主数据库添加一个登录,并将默认数据库指定为 Northwind: Use master go sp_addlogin ‘test’, ‘password’, … 继续阅读

发表在 Sql Server | 评论关闭

数据库日志文件太大解决办法

sql 2008解决方法: USE [master] GO ALTER DATABASE 要收缩的数据库名字 SET RECOVERY SIMPLE WITH NO_WAIT GO ALTER DATABASE 要收缩的数据库名字 SET RECOVERY SIMPLE GO USE 要收缩的数据库名字 GO DBCC SHRINKFILE (N’要收缩的数据库日志文件名’ , 0,TRUNCATEONLY) GO USE [master] GO ALTER DATABASE 要收缩的数据库名字 SET RECOVERY FULL WITH … 继续阅读

发表在 Sql Server | 一条评论

Sql server中使用with as 提高性能+高效分页

 一.WITH AS的含义      WITH AS短语,也叫做子查询部分(subquery factoring),可以让你做很多事情,定义一个SQL片断,该SQL片断会被整个SQL语句所用到。有的时候,是为了让SQL语句的可读性更高些,也有可能是在UNION ALL的不同部分,作为提供数据的部分。特别对于UNION ALL比较有用。因为UNION ALL的每个部分可能相同,但是如果每个部分都去执行一遍的话,则成本太高,所以可以使用WITH AS短语,则只要执行一遍即可。如果WITH AS短语所定义的表名被调用两次以上,则优化器会自动将WITH AS短语所获取的数据放入一个TEMP表里,如果只是被调用一次,则不会。而提示materialize则是强制将WITH AS短语里的数据放入一个全局临时表里。很多查询通过这种方法都可以提高速度。 二.使用方法     子查询如果嵌套过多,会使SQL语句非常难以阅读和维护,虽然我们可以将子查询放在表变量里,这样做将使SQL语句更容易维护,但又会带来另一个问题,就是性能的损失。由于表变量实际上使用了临时表,从而增加了额外的I/O开销,因此,表变量的方式并不太适合数据量大且频繁查询的情况。为此,在SQL Server 2005中提供了另外一种解决方案,这就是公用表表达式(CTE),使用CTE,可以使SQL语句的可维护性,同时,CTE要比表变量的效率高得多。     下面是CTE的语法: [ WITH <common_table_expression> [ ,n ] ] <common_table_expression>::=     expression_name [ ( column_name [ ,n ] ) ]  AS ( CTE_query_definition ) … 继续阅读

发表在 Sql Server | 评论关闭