![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据库
stephenxu111
AI技术开发者,爱好者,分享者。
展开
-
SQL使用技巧
a)SQL的使用规范: i. 尽量避免大事务操作,慎用holdlock子句,提高系统并发能力。 ii. 尽量避免反复访问同一张或几张表,尤其是数据量较大的表,可以考虑先根据条件提取数据到临时表中,然后再做连接。 iii. 尽量避免使用游标,因为游标的效率较差,如果游标操作的数据超过1万行,那么就应该改写;如果使用了游标,就要尽量避免在游标循环中再进行原创 2008-05-06 19:50:00 · 993 阅读 · 0 评论 -
Netbios名称解析导致MySQL数据库连接慢的问题
我们有个系统使用MySQL数据库,最近在某地部署时,发现远程客户端登录系统特别慢,经检查,发现每次该远程客户端连到服务器MySQL数据库时,要顺序创建约10个连接,这几乎就要20秒,而以前我们在公司的测试环境并没有发现这个问题。 于是抓包分析,发现每次客户端建立数据库连接,服务器都会向客户端所在主机发起netbios名称解析,而一般这只应该发生在第一次连接的时候,这个解析请求还要发两次,每原创 2009-06-29 20:22:00 · 1762 阅读 · 0 评论 -
Oracle 自动归档设置问题
最近要测试一下归档日志下Oracle的性能,就在init.ora中设置了如下选项(Oracle 9i):log_archive_start = truelog_archive_dest_1 = "location=G:/oracle/log" log_archive_format = ARC%S.%T 发现Oracle服务看起来启动了,但连接时就会报“shared memory rea原创 2009-09-07 22:57:00 · 1690 阅读 · 0 评论 -
ora-12154 TNS:"无法处理服务名"
今天又遇到这个问题,12154 TNS:"无法处理服务名",通常这个是因为tnsnames.ora文件配置不正确,不过今天看了看文件,似乎一点没错,搞了半天,发现服务名前面不能有空格,晕,oracle的容错性也不好啊。 比如,下面一段听tnsnames.ora文件中的一个本地网络服务名: ABC = (DESCRIPTION = (ADDRESS_LIST =原创 2009-12-04 18:31:00 · 2069 阅读 · 0 评论 -
基于OCCI访问Oracle的记录
我在oracle 9i的环境下开发了occi的应用,结果放到10g(10.2.0.3)服务器上运行不了(只装了windows 版的10g服务端),只好把所有依赖的9i的dll拷过去,结果连接occi报错:Error while trying to retrieve text for error ORA-32101到http://www.oracle.com/technology/gl原创 2010-01-12 18:54:00 · 7401 阅读 · 4 评论 -
使用mysqldump导出多表到一个文件
今天详细使用了MySQL导出导入工具mysqldump.exe和mysql.exe mysqldump.exe默认导出为单insert语句的形式,当记录多时,mysql.exe导入不了,用--extended-insert=false显示关闭才可以;导出的表如果有触发器,会默认一起导出,导入会报告触发器重复了(mysql不允许一个表有多个同类触发器),也要用--triggers=false原创 2010-04-16 08:55:00 · 10783 阅读 · 0 评论 -
SQL语句技巧记录(Oracle + MySQL)
Oracle技巧:1) 获取启动和运行时间SELECT TO_CHAR (startup_time, YYYY-MM-DD HH24:MI:SS) STARTTIME, TRUNC (SYSDATE - (startup_time)) AS DAYS, TRUNC ( 24 * ((SYSDATE - startup_time) - TRUNC (SYSDATE原创 2010-05-06 08:20:00 · 1363 阅读 · 0 评论 -
ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务
ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务.TNS-12500: TNS:监听器未能启动专用的服务器进程.原创 2010-10-18 17:52:00 · 2837 阅读 · 0 评论 -
查询数据库当前用户连接信息(MySQL,Oracle)
查看当前数据库有哪些连接。。。原创 2010-12-15 15:46:00 · 7669 阅读 · 0 评论 -
MySQL和Oracle时间取整
MySQL和Oracle按时间取整原创 2010-11-01 18:22:00 · 11615 阅读 · 0 评论 -
MySQL子查询的性能问题
MySQL缺陷?原创 2011-05-07 11:21:00 · 3025 阅读 · 0 评论 -
MySQL ODBC connector 在windows下自动安装的一个问题
在某些操作系统下,多次卸载安装MySQL ODBC connector会发现驱动出现异常不能使用,必须手工重装修复才可以。但如果你的驱动安装是集成在应用中一起安装的,怎么处理呢?您可以分两次两步来装,一次安装,一次修复,这样就可以了(有点啰嗦,但试过可行)。比如在InstallShield中调用MySQL ODBC connector 自动(静默)安装MySQL客户端驱动的技巧(使用msi安装包,原创 2013-05-27 12:18:05 · 8491 阅读 · 0 评论 -
MySQL汉字字段按拼音排序
我们的MySQL使用latin1的默认字符集,也就是说,对汉字字段直接使用GBK内码的编码进行存储,当需要对一些有汉字的字段进行拼音排序时(特别涉及到类似于名字这样的字段时),默认无法通过order by关键字正确排序。经过网上查找,网上的办法大多是针对使用utf8字符集的数据库,主要的方法有:1)直接转换字段为gbk,比如:SELECT * FROM table ORDER BY CONVE原创 2009-08-11 21:07:00 · 20681 阅读 · 3 评论 -
MySQL数据文件收缩问题
MySQL使用一段时间后,数据文件ibdata会增长得很大(主要是针对innodb的存储方式,有大量插入删除操作的数据库),有没有很好的办法可以收缩(shrink)数据文件呢?在网上查了一下,没有太好的办法,只提到删除重建数据文件的方式,实际就是备份-删除-恢复的方法,我试验了一下,基本可行,但还是有一些注意事项:1. 用mysqldump等工具导出数据我的数据库使用latin1字符集,必须强原创 2009-08-11 21:05:00 · 7300 阅读 · 0 评论 -
Windows下MySQL的安装目录问题
今天发现一个MySQL的问题,当把MySQL的文件目录安放在t字母打头的目录下时,比如d:/test目录,mysql服务就起不来了,报告找不到文件: D:/test/mysql>bin/mysqld-nt.exe --console090811 10:09:55 [ERROR] Cant find messagefile D: est/mysql/share/english/原创 2009-08-11 21:02:00 · 16488 阅读 · 0 评论 -
Oracle使用心得
1 截取的几种方法round() trunc() trim(to_char(xxx,9999.99))2 锁oracle的锁普通是乐观锁(不用主动加,通过版本来约束)还有可以主动加的悲观锁,分6级Oracle一般都是行级锁(MYSQL只有innodb类型表才支持)3 trigger mutating table问题解决方法使用表级触发器用自治事务PRGMA AUTO_NOM原创 2008-05-09 18:36:00 · 3155 阅读 · 0 评论 -
内存数据库研究实录
1 Berkely DB:开源嵌入式数据库(和应用相同的地址空间,可以显示设置为只内存数据库),支持复制(1master -> 多read only replica),支持hash,btree,record number,queue 4种存储方式,透明支持事务隔离,恢复,多用户锁(如果不需要,还可以禁止锁和日志机制),其完全基于key – value对来管理记录(key value可以是定长或变长原创 2008-05-12 17:50:00 · 2342 阅读 · 0 评论 -
Oracle数据库移植到MySQL实战
Oracle数据库移植到MySQL实战项目做好了,更高的要求被提出来,比如,要多数据库支持,怎么办?移植!有没有人做过这事,我好参考一下?哦,这有一个…关键词:Oracle MySQL 移植 一、前言公司原来的项目是基于Oracle数据库的,Oracle功能强大,但是部署和管理较复杂,更重要的是,购买Oracle的费用不是每个客户都愿意承担的。因此,迫切需要把公司项目所用原创 2008-05-26 14:00:00 · 8233 阅读 · 0 评论 -
推荐一个MySQL的图形管理工具
找过很多MySQL图形管理工具,大多要收费;经过多方比较,个人认为其中SQLYog的功能较好,可以编辑函数,过程,触发器,帐号权限等,而且迁移工具,导出导入工具都不错,还可以正常显示Latin1下的中文(5.26版),但没有直接管理事件event的功能。 最近又找到一个MySQL的免费管理工具:Navicat Lite for MySQL 默认是个受限功能版,但做基本的管理和开发够原创 2008-06-06 19:52:00 · 1463 阅读 · 0 评论 -
SQLite使用日志
最近又测试了一下内存数据库SQLite,发现功能增强了好多,比如多线程支持(用文件锁的方式实现的),并且也可以全内存化(用":memory:"的方式打开即可)了。 由于多线程的支持是通过操作系统文件锁的方式实现的,所以当以全内存数据库(即无磁盘文件)的方式打开SQLite时,就不支持多线程了,必须自行实现读写锁以互斥,推荐使用ACE读写锁。 由于SQLite的锁是文件锁的方式实现,原创 2008-10-06 17:13:00 · 8530 阅读 · 0 评论 -
SQLyog查询器里面正常显示带中文的sql语句的办法
SQLyog是我最常用的MySQL客户端管理工具,但是一直有个麻烦,当在SQL查询编辑窗口里面拷贝编写带中文的SQL语句时,中文会乱码。你可以在它的配置里面改写一下默认字体,就可以显示中文了(但是每个中文还是分成两半处理的,也就是说你按一个退格键会退掉半个中文,这也是个小缺陷)。原创 2008-10-31 09:57:00 · 4700 阅读 · 0 评论 -
对付 MySQL 的死连接
最近几天,被mysql连接会话数满这个问题困扰,我们的应用程序需要使用长连接,但有时连接断了需要重连,这就导致连接数越来越多,达到连接数限制就再也不能连上了。于是,想了个办法,在mysql内部实现杀死过期会话的功能。具体是不断检查是否超过连接数限制,如果超过,则把超过连接门限并且最久不活动的会话杀死。具体方法如下:首先,创建杀死最久不活动会话的存储过程(会话数门限我写的是250,请根据原创 2009-02-23 09:03:00 · 1583 阅读 · 0 评论 -
Oracle自动生成数据字典的SQL语句
读取Oracle表字段名字,类型(含长度),注释等信息的SQL语句:select col.COLUMN_NAME, com.Comments, col.DATA_TYPE, col.DATA_LENGTHfrom sys.all_tab_columns col, sys.all_col_comments comwhere col.owner = 用户名and col.table_n原创 2008-12-18 09:52:00 · 7751 阅读 · 0 评论 -
获取数据库系统信息的SQL语句(Mysql,Oracle)
Oracle数据库:获取版本信息:SELECT BANNER FROM V$VERSION WHERE BANNER LIKE %Oracle%获取主机名,实例名,实例启动时长:SELECT host_name, instance_name,startup_time,logins,archiver, log_switch_wait from v$instance获取表空间SELEC原创 2008-12-18 09:54:00 · 4152 阅读 · 0 评论 -
MySQL 升级 和 VSS 问题
以前用的MySQL6.0 alpha版,在实用中发现一些问题(比如有些数据表数据会损坏),稳定性不够,于是想换成SUN收购MySQL出的正式版,比如5.1,测试发现如果只替换bin下的文件,不能成功更新,所以不能重复利用以前的data相关文件。 另外还发现一个问题,当把做好的MySQL6的数据库文件夹(已建好初始表结构和数据)放到VSS上,再下下来就有问题了,用客户端工具SQLyog打开后原创 2009-04-18 14:38:00 · 1573 阅读 · 0 评论 -
评估数据库服务器I/O操作性能的工具和方法
最近有个新项目,需要监控大量数据,并把它们存入数据库(每秒上千),这样的话,必须评估大量数据入库的性能,以确定方案的可行性。因此寻找了一下数据库性能评测工具,最后找到一个专业Benchmark Factory for Databases 4.7,由Quest software出品。它可以通过在服务端模拟执行大量的事务等操作,测试数据库服务器性能。 首先生成测试项目(配置连接到哪个原创 2009-06-01 18:03:00 · 2890 阅读 · 0 评论 -
mysqldump使用常用参数说明
以下的命令可以满足一般有前后版本导出导入操作可能的数据库全备份需求: mysqldump.exe -umyusername -pmypass -h localhost -P 3306 --triggers=false --complete-insert -q --extended-insert=false --default-character-set=latin1 --no-c原创 2013-07-16 19:28:21 · 20968 阅读 · 0 评论