随笔 - 110  文章 - 88 评论 - 65 trackbacks - 2

 Backup Log 数据库名称 with no_log
go
dump transaction 数据库名称 with no_log
go
DBCC SHRINKDATABASE(数据库名称)

Go

USE 數據庫名稱 ;
GO
ALTER DATABASE 數據庫名稱 SET RECOVERY SIMPLE;--设置简单恢复模式
GO
DBCC SHRINKFILE (數據庫日誌名稱, 1);
GO
ALTER DATABASE 數據庫名稱  SET RECOVERY FULL;--恢复为原模式
GO

 

可通过以下命令查找数据库日志名称等

Sp_helpdb
SELECT * FROM sys.database_files

posted @ 2011-05-12 16:22 ipusr 阅读(20) 评论(0) 编辑

<script language="javascript">   

alert(87593.21-3.12);   

</script>  

正确的显示的是:87590.09
但是运算出来的确是:87590.09000000001

可采用 toFixed处理,如:

<script language="javascript">   

alert((87593.21-3.12).toFixed(2));   

</script>  

---------------------------------

toFixed 方法问题:

<script language="javascript">   

alert(0.009.toFixed(2));   

</script>  

运算的结果0.00,但是需要的是 0.01

解决方法:

Number.prototype.toFixed = function(d)    

{    

    var s=this+"";if(!d)d=0;    

    if(s.indexOf(".")==-1)s+=".";s+=new Array(d+1).join("0");    

    if (new RegExp("^(-|\\+)?(\\d+(\\.\\d{0,"+ (d+1) +"})?)\\d*$").test(s))    

   {    

       var s="0"+ RegExp.$2, pm=RegExp.$1, a=RegExp.$3.length, b=true;    

      if (a==d+2){a=s.match(/\d/g); if (parseInt(a[a.length-1])>4)    

      {    

           for(var i=a.length-2; i>=0; i--) {a[i] = parseInt(a[i])+1;    

            if(a[i]==10){a[i]=0; b=i!=1;} else break;}    

        }    

        s=a.join("").replace(new RegExp("(\\d+)(\\d{"+d+"})\\d$"),"$1.$2");    

    }if(b)s=s.substr(1);return (pm+s).replace(/\.$/, "");} return this+"";    

};  

 


 

posted @ 2011-02-28 09:42 ipusr 阅读(90) 评论(0) 编辑

第一:SQl基本规范

1、尽量避免使用游标(效率比较差,特别是数据量大的情况,可以采用条件过滤或者数据到临时表,再做操作!)

2、需要注意Where条件顺序(先根据索引、范围大小确定前后顺序;字段顺序尽量与索引顺序一致;范围由大到小)

3、尽量不要再where条件中  = 号的后面 中采用函数、算术等运算(可能导致系统无法正常使用索引)

4、使用exists代替in、select count(1)判断记录是否存在

5、尽量使用 “ >= ”,不要使用 " > "

6、进行Insert、update的时候,应该防止冲突(特别是数据量大的时候,锁会升级)

7、like使用注意(尽量不采用 “%1%” 之类的方式处理,多采用 “1% ”、“%1”)

8、避免连接字段查询(如  a.first+'|'+b.name = XXXX,应该采用 a.first='X' and b.name ='XXX')

9、字段有Null的情况,不能对其建立索引

第二  索引注意点

1、根据实际情况建立,即使数据量很大的表,索引不能超过6个

2、尽量使用索引的字段作为查询条件,尤其是聚簇索引,必要时可以通过index index_name来强制指定索引

3、数据量大的表,尽量建立索引

4、在使用索引字段作为条件时,如果该索引是联合索引,那么必须使用到该索引中的第一个字段作为条件时才能保证系统使用该索引,否则该索引将不被使用

第三  临时表注意点

1、尽量不使用 distinct \order by \ group by \having \ join \ cumpute 等,因为这些会增加临时表的负担

2、创建临时表时,如果插入的数据量大,可以采用 select into 替换 create table,避免产生log,提高速度;如果插入数据量不大,可以采用 create table  然后再 insert

3、如果临时表的数据量大,也需要建立索引(最好包含在一个存储过程中)

4、临时表要及时删除;(先 truncate table  ,在 drop table ,减少系统表被锁定的时间)

 

第四  其他

1、不要在一句话里多次的使用相同的函数,浪费资源,将结果放在变量里再调用更快

2、Select COUNT(*)的效率教低,尽量变通他的写法,而EXISTS快.同时请注意区别: select count(Field of null) from Table 和 select count(Field of NOT null) from Table 的返回值是不同的

3、UNion和UNion all 的区别,UNION all更好

4、注意使用DISTINCT,在没有必要时不要用,它同UNION一样会使查询变慢。重复的记录在查询里是没有问题的
5、查询时不要返回不需要的行、列
6、用select top 100 / 10 Percent 来限制用户返回的行数或者SET ROWCOUNT来限制操作的行
7、一般不要用如下的字句: "IS NULL", "<>", "!=", "!>", "!<", "NOT", "NOT EXISTS", "NOT IN", "NOT LIKE", and "LIKE '%500'",因为他们不走索引全是表扫描。也不要在Where字句中的列名加函数,如Convert,substring等,如果必须用函数的时候,创建计算列再创建索引来替代.还可以变通写法:Where SUBSTRING(firstname,1,1) = 'm'改为Where firstname like 'm%'(索引扫描),一定要将函数和列名分开。并且索引不能建得太多和太大。NOT IN会多次扫描表,使用EXISTS、NOT EXISTS ,IN , LEFT OUTER JOIN 来替代,特别是左连接,而Exists比IN更快,最慢的是NOT操作.如果列的值含有空,以前它的索引不起作用,现在2000的优化器能够处理了。相同的是IS NULL,"NOT", "NOT EXISTS", "NOT IN"能优化她,而"<>"等还是不能优化,用不到索引。

8、一次更新多条记录比分多次更新每次一条快,就是说批处理好
、、、、、、、


 

 



 

 

posted @ 2011-01-21 15:08 ipusr 阅读(92) 评论(0) 编辑

一  准备

Ildasm.exe:将dll  、 exe编译为IL文件  (Ildasm.exe默认在C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin )

ilasm.exe:将IL文件编译回dll或exe  (C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727)

UltraEdit  : 文本处理工具

Reflector.exe  : 反编译工具

 

二  破解步骤

1、采用 Reflector.exe  打开需要破解的Dll ;分析并找到 需要调整的程序段

2、采用Ildasm.exe 将 dll 编译为 IL文件

3、删除强名publickey 块,将IL文件编译为 dll 文件,

3、采用UltraEdit   打开IL文件 (找到对应的IL 代码,并将其修改)

4、采用ilasm.exe 将IL 文件编译回为 dll  (如: ilasm /dll /resource=mytest.res  mytest.il )

 

posted @ 2010-11-26 12:05 ipusr 阅读(222) 评论(0) 编辑
    1. “*”号表示加粗
    2. “_”表示斜体
    3. “[]”表示链接
    4. “[X]”表示复选框
    5. “(X)”表示单选框(或者写成[*]、(*))
    6. “\r”表示换行
    7. “ ^”排序升序(前面有空格)
    8. 例子

                    文本内容:

 

type   ^, Name, Age, Nickname, 选择
*加粗*, 第一行, 33, 而, []
_斜体_, 第2行, 
3, The ee, [x]
[链接], 第3行, 
34234234, (*)
换行\rdd, 第4行, 
34, dsfsdfsdf, (*)

 

效果:

 

posted @ 2010-08-05 10:23 ipusr 阅读(149) 评论(0) 编辑
摘要: 简单应用调用方法:<script language="javascript" type="text/javascript">document.onkeydown=function(){ window.event.returnValue = true; var keycode=event.keyCode; if(keycode==13) { window.event.returnVal...阅读全文
posted @ 2010-06-19 19:35 ipusr 阅读(114) 评论(0) 编辑
摘要: 转自http://www.cnblogs.com/a311300/archive/2008/09/08/1286665.html在ASP.NET项目开发中,会被要求添加广告,有翻屏效果、有广告轮流显示、飘浮广告、左侧广告、右侧广告等。用本贴持续记录一些收集的广告效果。希望给有需求的朋友们一些支持。也希望朋友们把我未记录的广告形式也给予一起回贴。使本贴更加的完善,也让更多的朋友们分享。1.翻屏效果[...阅读全文
posted @ 2010-06-19 19:32 ipusr 阅读(100) 评论(0) 编辑
摘要: 如果在网页中有<a href="#">.......</a>这样的连接,而且已经出现的滚动条,并且下拉了一些,那么当点击这个链接的时候就会返回页面顶部,很是不爽。以下几种方法可以防止这个问题:1、将<a href="#">.......</a>  改为<a href="javascript:;">.......</a>2、将&...阅读全文
posted @ 2010-06-19 19:30 ipusr 阅读(53) 评论(0) 编辑
摘要: 1、在设计PDM文件的时候,设计一张表,在填写栏位的时候,如果我们输入Name,Code会跟着变化:Step 1:菜单栏找到Tools,找到General Options,点击Step 2:打开Dialog将Operating modes中的 Name To Code mirroring 將前面的勾去掉2、Table表中 Name与Comment互转(PowerDesigner->Tools...阅读全文
posted @ 2009-09-16 18:19 ipusr 阅读(96) 评论(0) 编辑
摘要: [代码]阅读全文
posted @ 2009-08-11 14:40 ipusr 阅读(70) 评论(0) 编辑
仅列出标题  下一页