TimesTen是个好东西,据说查询速度可以提高最多40倍,插入,修改速度也可以提高十几倍。但这句话是在会用的前提下,正如《东北风云黑道悲情》中赵红兵所说“枪在没打响之前就是一块废铁”,后来这句话还救了在广州逃命的李四一命。TT也一样,要不会用再快也白瞎。
目前网上能找到这方面的资料比较少,而且大部分是英文文档,像博主这种低水平选手自然就感觉非常吃力了,而且博主是在windows平台使用,资料就更少了。之前有一个网站www.ttisql.com不知道为什关闭了。没办法,怎奈领导催得紧,只好硬着头皮慢慢的测试。从安装开始,一直到做出C++C#的demo。现在正在优化之前的程序。将自己的使用心得写下来一来做个笔记二来与大家分享经验。
先推荐几篇高手的博文,博主也是通过这些文章一步一步实现的,这里只是总结一些使用中遇到一些奇怪的问题。
安装配置:
http://wenku.baidu.com/view/7cdafefc700abb68a982fbdc.html
http://hua04104.iteye.com/blog/1133332
常用命令:
http://logzgh.itpub.net/post/3185/450050
常见问题推荐博客:
http://aofengblog.blog.163.com/blog/static/6317021200910300576866/
当然还有官方文档:
http://download.oracle.com/otn_hosted_doc/timesten/odpnet/readme.htm
安装目录下welcome.html
安装普通软件安装没什么区别,直接点setup.exe安装即可,不再多说。需要说明两个问题。
1、32位机器安装32位版本,64位机器要安装64位版本。官方文档是这么说的,64位机能不能安装32位版本并没有试过。安装程序可以到oracle官方网站下载。
2、安装到选择TNS_ADMIN路径那一步选择一下TNS路径,如果没选择后期也可以通过ttmodinstall命令或者右键“我的电脑”属性—》高级系统设置—》环境变量—》系统变量,找到TNS_ADMIN进行修改。否则后续在代码数据库连接字符串中的DataSource找不到tns。
安装完成后就要开始创建数据库了。
先创建一个TimesTen的数据库,也叫DataStore。具体操作:控制面板—》管理工具—》数据源(ODBC),可以看到在系统DSN中已经有TT的DSN定义
接着就创建我们自己的的DataStore。我们看到TT有一个Client和一个DataManager两种驱动。现在先创建TimesTen DataManger。
接着填写DSN的配置信息。
此处DatabaseCharacterSet设置如果oracle是ZHS16GBK,要配置成相同的,找图配如果和数据库不同以后还要重新配ODBC数据源。
正式进入到了DSN的配置了,一共有 DataStore / FirstConnection/GeneralConnection/NLS Connection/Cache Connect/Server六个配置页。第一页是DataStore:
* DataSourceName :数据源的名称,我们填上test;
*Description:可填可不填,我们这里填上 ‘just for testing’,只是一个说明而已。
* Data StorePath+:将要放置数据库的地址,外加你想命令的DataStore的名字,为了好记起见,也命名为test。要注意的是,如果通过右边的Browse选择的话,选择好目录之后,一定要文件名里面写上将要命名的DataStore的名字,否则确定不了。
*LogDirectory:存放日志的目录,也可以不选,缺省的是和DataStore在同一个目录下。
*DatabaseCharacter Set:数据库的字符集,如果选错的话,只能将数据库drop掉,重新创建。现在我们选择Al32UTF8。
* TypeMode:数据类型以哪个为准,Oracle还是TimesTen,这个选项出现的原因是TimesTen以前的版本和Oracle的数据类型是不一样的,为了保证数据类型的兼容而已。缺省是Oracle,一般不选,使用缺省的值。特殊情况下具体定义数据类型。
* DataStoreAttributes:确定要创建的库是否是临时的,绝大部分情况下,都不选择创建临时库。是否允许Client端的连接,缺省为选上。
* OS GroupRestrict:哪个操作系统用户组的用户有访问TimesTen的权限。
(以上大段文字摘自http://hua04104.iteye.com/blog/1133330)
强调一点:填写Data Store Path +Name时,先建好目录数据源信息存放的目录,然后点击Browse,在弹出文件对话框中填上DataStore的名字test,点击打开。
完成后点击OK,一个DSN建立完成了。
接下来可以通过ttisql工具来访问test数据源了。具体操作可参考博客:http://hua04104.iteye.com/blog/1133332
博主要说明的一点:在WIN7下直接启动控制台会连不上数据库。需要开始—》附件—》命令提示符,右键以管理员权限运行.win7一直是这么操蛋,博主在这个问题上不止一两次吃亏。之前在做WCF开发的时候也遇到过,死活无法运行程序,后来才发现原来VS必须以管理员权限启动再编译才可以调试。还有一次两个程序实现进程间通信,数据总是过不去。后来也是这么解决的。。。。。还有好些小问题都是这样解决的。友情提示,在开发过程中要注意这个问题。
至此,数据库建立完成。可以通过SQL语句在TT上建表等操作。
问:如果TTData Manger建在远程的机器上,在开发过程中想要访问怎么办呢?
答:这时候需要TTClient DSN了。还是先推荐直接阅读博文:http://hua04104.iteye.com/blog/1133333
博主按照上述博文操作完成后没有问题,也就不多废话了。