一段时间来,每天的工作都比较杂,vb,asp,c#,sql,每项工作都要搞,实在是累!工作之余,想想公司和工作的情况,看来是有必要换个环境了。不过也要先把目前的工作处理完成啊。
最近又遇到一个问题:一家客户使用中的数据库,日志文件异常增大,平均每天增加大约一个G,而数据文件变化不大。这两天开始查这个问题,但是好几天时间过去了,一直没有头绪。已经做了重建索引,重装sql,重装系统,更换服务器等操作,问题依旧。在google搜索了下,只有查找sql数据库日志文件大小的命令,但是不知如何查找表日志大小。
查询数据库的日志文件大小:dbcc sqlperf(logspace)
Database Name Log Size (MB) Log Space Used (%) Status
-------------- ------------------------ ------------------------ -----------
master 2.2421875 32.600174 0
tempdb 0.4921875 39.285713 0
model 0.4921875 41.07143 0
msdb 2.2421875 30.901567 0
pubs ......
--> Title : SQL Server 2005中的文件和文件组
--> Author : wufeng4552
--> Date : 2009-10-23
1、文件和文件组的含义与关系
每个数据库有一个主数据文件.和若干个从文件。文件是数据库的物理体现。 文件组可以包括分布在多个逻辑分区的文件,实现负载平衡。文件组允许对文件进行分组,以便于管理和数据的分配/放置。例如,可以分别在三个硬盘驱动器上创建三个文件(Data1.ndf、Data2.ndf 和 Data3.ndf),并将这三个文件指派到文件组 fgroup1 中。然后,可以明确地在文件组 fgroup1 上创建一个表。对表中数据的查询将分散到三个磁盘上,因而性能得以提高。在 RAID(磁盘冗余阵列)条带集上创建单个文件也可以获得相同的性能改善。然而,文件和文件组使您得以在新磁盘上轻易地添加新文件。另外,如果数据库超过单个 Microsoft Windows 文件的最大大小,则可以使用次要数据文件允许数据库继续增长。
2、文件、文件组在实践应用中常见的问题
通常情况下我们构造的数据库都只有两个文件,mdf文件和ldf文件. ......
SELECT CONVERT(varchar(100), CAST(@testFloat AS decimal(38,2)))
SELECT STR(@testFloat, 38, 2)
从Excel中导入到sql2000,有一列“联系方式”变成了float类型,我想转换成nvarchar类型,用下面的语句
select convert(nvarchar(30),convert(int,联系方式)) from employee
go
//数据溢出,不行!
select convert(nvarchar(30),convert(decimal(11,0),联系方式)) from employee
go
//数据转换成功!
SELECT CONVERT(nvarchar(100), CAST(联系方式 AS decimal(11,0))) from employee
go
//数据转换成功!
SELECT STR(联系方式, 11, 0)from employee
go
//数据转换成功!
总结,float---decimal----nvarchar
convert
cast
str
参考:http://www.itwis.com/html/database/sqlserver/20090828/5827.html ......
JAVA-字符串过滤类
package cn.com.hbivt.util;
/**
* Title:
*
* Description:
*
* Copyright: Copyright (c) 2005
*
* Company:
*
* @author not attributable
* @version 1.0
*/
public class StringUtils {
//过滤通过页面表单提交的字符
private static String[][] FilterChars={{"",">"},{" "," "},{"\"","""},{"&","&"},
{"/","/"},{"\\","\"},{"\n",""}};
//过滤通过javascript脚本处理并提交的字符
private static String[][] FilterScriptChars={{"\n","\'+\'\\n\'+\'"},
......
JAVA-字符串过滤类
package cn.com.hbivt.util;
/**
* Title:
*
* Description:
*
* Copyright: Copyright (c) 2005
*
* Company:
*
* @author not attributable
* @version 1.0
*/
public class StringUtils {
//过滤通过页面表单提交的字符
private static String[][] FilterChars={{"",">"},{" "," "},{"\"","""},{"&","&"},
{"/","/"},{"\\","\"},{"\n",""}};
//过滤通过javascript脚本处理并提交的字符
private static String[][] FilterScriptChars={{"\n","\'+\'\\n\'+\'"},
......
今天在上CSDN空间的时候,数据库出错直接抛出SQL文了,消息如下:
MySQL Error
Message
: MySQL Query Error
SQL
: SELECT main.*, field.* from uchome_space main, uchome_spacefield field
WHERE field.sex='1' AND field.uid=main.uid
ORDER BY main.viewnum DESC LIMIT 0,100
Error
: Incorrect key file for table '/tmp/#sql_2a52_0.MYI'; try to repair it
Errno.
: 126
一般来说这种错误的消息是不让外部看的,就是catch后报一个系统错就好了。
如果上面的这个样子的话,即使不懂得人也知道我们的用的MySQL数据库。还有就是看到了表名和字段名,和检索逻辑。
在安全性上并不是值得提倡的。 ......
Distinct
SELECT DISTINCT "栏位"
from "表格名"
Where
SELECT "栏位"
from "表格名"
WHERE "condition"
And/Or
SELECT "栏位"
from "表格名"
WHERE "简单条件"
{[AND|OR] "简单条件"}+
In
SELECT "栏位"
from "表格名"
WHERE "栏位" IN ('值1', '值2', ...)
Between
SELECT "栏位"
from "表格名"
WHERE "栏位" BETWEEN '值1' AND '值2'
Like
SELECT "栏位"
from "表格名"
WHERE "栏位" LIKE {模式}
Order By
SELECT "栏位"
from "表格名"
[WHERE "条件"]
ORDER BY "栏位" [ASC, DESC]
Count
SELECT COUNT("栏位")
from "表格名"
Group By
SELECT "栏位1", SUM("栏位2")
from "表格名"
GROUP BY "栏位1"
Having
SELECT "栏位1", SUM("栏位2")
from "表格名"
GROUP BY "栏位 ......