随笔分类 - 数据库
摘要:SQLServer2005中数据分配数据页中,有2个字节是用来表示定长的字段数量的。有些情况下表示定长字段数量的值会多1,并且Null位图的最右边位的值始终为1,说明第一位是空值。如:一、有聚集索引,但不是唯一的情况下二、没有聚集索引,但有唯一和不唯一的非聚集索引但第一个字段是什么,RowID? 为什么是空值呢。查找数据页确实没找到该数据。
阅读全文
摘要:一、使用以下语句获取分区及分配信息[代码]结果如下: 图1二、使用语句[代码]分配单元Id就是图1中pages值最大的au_id值。得到的first_page是一个16进制数字,需要转换成文件号和页号,转换规则:在first_page中,每两个16进制数字表示一个字节,并且是逆序排列的。比如值为0xC70000000100,怎么转换呢?因为它是逆序排列的,并且每两个表示一个字节,所以每次都将剩下 ...
阅读全文
摘要:前几天使用SQLyog工具建好的MySQL数据库,当时都正常。过了几天打开看不到以前的数据库了,原因是:MySQL服务端的整个文件夹设置为隐藏了。
阅读全文
摘要:最近在SqlServer中做一个大数据量(3000万)的测试表只有六个字段,字段的内容都比较小。使用BULK INSERT语句插入数据,结果显示插入的速度比直接写INSERT语句会快很多。这里分析两种情况:一:表只有主键索引(非簇集) 在插入数据,查询数据都很慢。插入100万需42分钟左右二:表有主键索引(非簇集)和一个簇集索引两个 插入数据相对第一种会快很多,100万数据大约12分钟。全部插...
阅读全文
摘要:从资料中了解到使用BULK INSERT新增大数据量时,可以提升性能。语句类似如下:BULK INSERT BPS_IDC_TEXT..TS_Image FROM 'd:\TS_Image.dat' WITH ( FIELDTERMINATOR =',', ROWTERMINATOR =';\n' )字段之间分隔符用‘,’,每行结尾用 ‘ ;\n’...
阅读全文
摘要:PowderDesinger的外键名称有一定的长度限制(12.5版本不清楚哪修改配置),导致当外键关联的表过长时,外键名有重复的可能.解决这个问题可以使用:Tools -> Rebuild Objects -> Rebuild References
阅读全文
摘要:最近在Linux服务器上安装MySql5后,本地使用客户端连MySql速度超慢,本地程序连接也超慢。解决方法:在配置文件my.cnf的[mysqld]下加入skip-name-resolve。原因是默认安装的MySql开启了DNS的反向解析。如果禁用的话就不能在MySQL的授权表中使用主机名了而只能用ip格式。附:How MySQL uses DNSWhen a new thread connec...
阅读全文
摘要:一个B/S系统,WEB 采用Window2003 IIS6.0 + .NET2.0,数据库采用 Linux + MySql5.1 mysql.db表中用户user_a除了Grant_priv权限没有,其它权限都是开放的。 使用SQLyog客户端连MySql数据库,用户user_a可以执行存储过程。 使用程序连接时,执行存储过程会报权限问题。错误信息如下: Unable to retrieve st...
阅读全文
摘要:中文乱码的原因是因为使用了MySql的默认字符集latin1,处理方法: 修改MySql服务器的字符集为gbk 1.找到MySql目录下的my.cnf的配置文件(在Window系统下是my.ini文件) 2.打开my.cnf文件,找到[mysql]和[mysqld]的配置段,在这两个配置段下,加上default-character-set=gbk 如果default-character-...
阅读全文
摘要:在PowerDesinger中,若表名过长,自动生成的主键名会被自动截取。 解决如下:DataBase/Edit Current DBMS/Scripts/Objects/PKey/ConstName中找到Value的值, 默认是 PK_%.U27:TABLE%,U27表示截取27个字符。改成PK_%TABLE%主键名就不会被截取了。 推广开去,其它的设置类似。
阅读全文
摘要:开发的一个Web系统,使用VS2005+MySQL,在开发(有使用到调试)、运行过程中产生很多的Sleep对象,如果Sleep过多导致Connect过多。 在MySQL中使用Show processlist命令,显示如下数据: 2 root SZYF-136:1099 ce_project Sleep 622 5 root SZYF-132:1114 NULL Sleep 1896...
阅读全文
摘要:一个.NET系统,使用MySQL数据库。在并发测试过程中,发现过一段时间就发生MySQL的连接数超过最大值,就死在那。 经过检查发现,MySQL中有很多的Sleep线程存在,而且一直不释放。 错误原因:系统中有一个地方在调用MySQL的DataRead后,没有释放此连接。 而MySQL是不会自动释放连接,导致一直连接一直是Sleep状态。
阅读全文
摘要:今天查看事件日志,发现服务存在一个MySql错误很久了。描述如下: Can't open and lock privilege tables: Table 'mysql.servers' doesn't exist For more information, see Help and Support Center at http://www.mysql.com/. 不知道是什么原因产生的这个错...
阅读全文
摘要:点击 管理/sql server代理/作业 新建作业: 常规选项卡里,"名称"填写"定时备份数据库","启用"前面选"对勾","以本地服务器为目标", "分类"选择"数据库服务", 步骤选项卡里,新建步骤,步骤名:备份数据库;类型:Transact-SQL脚本(TSQL); 数据库:要备份的数据库 命令(可同时备份多个数据库): DECLARE @FileName VARCHAR(2...
阅读全文

浙公网安备 33010602011771号