1.oracle扫描的顺序为从下到上,从右到左
所以我们要尽可能的把数据少的表放在后面,交叉表放在后面,最能过滤的条件放在后面
2.不要在索引上使用计算和not操作符
索引一旦参与计算或使用了not操作符,oracle将会忽略这个索引
3.尽量使用in和and,尽量避免使用or,or会产生大量的过滤 ,直接导致逻辑读大量增加
4.必要时使用autotrace(sqlplus中有效,PL/SQL中无效)
命令:set autotrace on;
规则:尽量减少逻辑读,应该避免物理读,提高缓冲区命中率 ,最好保持在95%以上。
recursive calls 递归调用
db block gets 数据块读取
cons ......
文中的SQL都是从我的项目中直接copy过来,因此很多表名什么都有了
//创建表
"CREATE TABLE FEED_TABLE(FeedID TEXT, Title TEXT, Summary TEXT, Author TEXT, ImageName VARCHAR(21), ImageType TEXT, MaxIndex INT, ImageData BLOB)"
//查询记录
"select * form 'table_name'"
"select * form 'table name' where value = '?'"
//插入记录
"INSERT INTO FEED_TABLE(FeedID, Title, Summary, ImageName, ImageType, MaxIndex) VALUES('%s', '%s', '%s', '%s', '%s', %d)"
//更新记录
"update 'table_name' 'column_name' = 'value'"
//删除记录
"DELETE from FAVORITE_TABLE WHERE EntryIndex = %d"
//删除所有记录
"delete from 'table_name'"
//删除表
"drop table 'table_name'"
//查询表结构
"select sql from sqlite_master where name = 'table_name'"
callback的第三个参数
另外,sqlite3是支持事务的
int result;
result = sqlite3_exec( db, "begin transaction", 0, 0, &zErrorMsg ); //开始一个事务
result = sqlite3_exec( db, "commit transaction", 0, 0, &zErrorMsg ); //提交事务
result = sqlite3_exec( db, "rollback tran ......
文中的SQL都是从我的项目中直接copy过来,因此很多表名什么都有了
//创建表
"CREATE TABLE FEED_TABLE(FeedID TEXT, Title TEXT, Summary TEXT, Author TEXT, ImageName VARCHAR(21), ImageType TEXT, MaxIndex INT, ImageData BLOB)"
//查询记录
"select * form 'table_name'"
"select * form 'table name' where value = '?'"
//插入记录
"INSERT INTO FEED_TABLE(FeedID, Title, Summary, ImageName, ImageType, MaxIndex) VALUES('%s', '%s', '%s', '%s', '%s', %d)"
//更新记录
"update 'table_name' 'column_name' = 'value'"
//删除记录
"DELETE from FAVORITE_TABLE WHERE EntryIndex = %d"
//删除所有记录
"delete from 'table_name'"
//删除表
"drop table 'table_name'"
//查询表结构
"select sql from sqlite_master where name = 'table_name'"
callback的第三个参数
另外,sqlite3是支持事务的
int result;
result = sqlite3_exec( db, "begin transaction", 0, 0, &zErrorMsg ); //开始一个事务
result = sqlite3_exec( db, "commit transaction", 0, 0, &zErrorMsg ); //提交事务
result = sqlite3_exec( db, "rollback tran ......
1、下载:需要下载2个文件。 1) sql server express studio下载地址: Microsoft SQL Server Management Studio Express http://www.microsoft.com/downloads/details.aspx?FamilyID=C243A5AE-4BD1-4E3D-94B8-5A0F62BF7796&displaylang=zh-cn 再下载: 2)Microsoft SQL Server 2005 Express Edition http://www.microsoft.com/downloads/details.aspx?familyid=220549B5-0B07-4448-8848-DCC397514B41&displaylang=zh-cn ......
SQL*PLus> desc emp;
名称 是否为空? 类型
----------------------------------------- -------- -----------------------
EMPNO NUMBER(4)
ENAME   ......
SQL*PLus> desc emp;
名称 是否为空? 类型
----------------------------------------- -------- -----------------------
EMPNO NUMBER(4)
ENAME   ......
2、sql express 安装 如果在XP下,直接双击安装就好了。 先安装 [在vista下如果直接双击可能会出现 安装sql server express 出错29506 ] [Vista安装的时候,需要使用“以管理员身份运行”安装] SQLServer2005_SSMSEE.msi安装结束 studio已经安装上去,但是你有没有发现,安装sql的时候没有发现有用户sa的密码设置?》 所以,打开studio的时候,,根本就链接不上。 别急,再安装下一个软件 。。 在vista下我们仍用管理员身份执行。安装过程中就会有sa的身份设置咯。 好。这个软件安装完毕,菜单齐全。 再看如何设置一下。 》》》》 ......
安装完毕之后,还需要设置一下才能使sql服务链接成功。 选择第一个:服务和链接的外围应用配置器 点击“远程链接”,再选择本地链接和远程链接。选择第3个选项。 好了。我们可以到开studio了。 记得在服务器名称输入:localhost\SQLEXPRESS
登录名sa。密码就是安装的时候输入的密码。 ok。。。好了。。。。链接成功。 express的使用和sql2000大同小异。 新增数据库的时候,右键数据库新增便可。 sql链接字符串: server=localhost\SQLEXPRESS;User ID=sa;Password=123456;database=db_test;Connection Reset=FALSE;Max Pool Size=512 完成!!! ......