当前位置:  编程技术>移动开发
本页文章导读:
    ▪Oracle目录技术        Oracle索引技术《Oracle索引技术》 基本信息 作者: (美)Darl Kuhn Sam R. Alapati Bill Padfield [作译者介绍] 译者: 卢涛 丛书名: 图灵程序设计丛书 出版社:人民邮电出版社 ISBN:9787115296269 上架时间.........
    ▪ 获得andorid手机SD卡路径 2.1和2.2区别        取得andorid手机SD卡路径 2.1和2.2区别 1、存储卡路径:   android2.1系统为 /sdcard   android2.2系统为/mnt/sdcard 2、通过代码获取存储卡路径,如下:   Environment.getExternalStorageDirectory(); ......
    ▪ 基于ARM体系结构的嵌入式开发(一)-移植第一个驱动程序       基于ARM体系结构的嵌入式开发(1)-----移植第一个驱动程序本文是基于s3c2440,arm9内核的linux开发 一.选用arm开发板;S3C2440  (天嵌的那款) 买来的板子已经移植好uboot,linux内核。所以先用secure.........

[1]Oracle目录技术
    来源: 互联网  发布时间: 2014-02-18
Oracle索引技术

《Oracle索引技术》
基本信息
作者: (美)Darl Kuhn Sam R. Alapati Bill Padfield [作译者介绍]
译者: 卢涛
丛书名: 图灵程序设计丛书
出版社:人民邮电出版社
ISBN:9787115296269
上架时间:2012-11-13
出版日期:2012 年11月
开本:16开
页码:1
版次:1-1
所属分类: 计算机 > 数据库 > Oracle

更多关于 》》》《Oracle索引技术》
内容简介
书籍
计算机书籍
  《oracle索引技术》由三位经验丰富的顶级oracle dba 联手打造,介绍了oracle 的各种索引类型。索引是用于提高查询性能的数据库对象,但如果使用不当,也可能导致查询性能下降。作者分享了多年的实践经验和个人智慧,帮助读者避免误用索引。此外,本书还提出了很多索引管理和维护的建议。
  无论是oracle 数据库开发人员还是dba,都能从本书中获益。
目录
《oracle索引技术》
第1章  oracle 索引  1
1.1  用索引提高性能  2
1.2  确定使用哪种类型的索引  4
1.2.1  b树索引  5
1.2.2  特定的索引类型  7
1.3  确定需要建立索引的列  10
1.3.1  主键列和唯一键列的索引  11
1.3.2  外键列的索引  11
1.3.3  其他适合创建索引的列  12
1.4  索引指南  12
1.5  小结  13
第2章  b树索引  15
2.1  oracle如何使用b树索引  15
2.1.1  场景一:所有的数据位于索引块  17
2.1.2  场景二:索引中不包含所有信息  19
2.1.3?场景三:只有表块被访问  20
2.2  准备创建b树索引  21
2.2.1  在创建前估计索引的大小  21
2.2.2  为索引创建单独的表空间  22
2.2.3  从表空间继承存储参数  23
2.2.4  命名标准  24
2.3  实现b树索引  24
2.3.1  创建b树索引  24
2.3.2  报告索引  25
2.3.3  显示创建索引的代码  26
2.3.4  删除b树索引  27
2.4  管理带约束的b树索引  28
2.4.1  在主键列上创建b树索引  29
2.4.2  在唯一键列上创建b树索引  33
2.4.3  索引外键列  36
2.5  小结  39
第3章  位图索引  40
3.1  位图索引  41
3.2  创建位图索引  44
3.3  创建分区的位图索引  45
3.4  在索引组织表上创建位图索引  45
3.5  位图索引对查询性能的影响  46
3.6  位图索引对数据载入性能的影响  50
3.7  了解位图连接索引  53
3.8  创建位图连接索引  54
3.9  报告位图索引  55
3.10  小结  55
第4章  索引组织表  56
4.1  索引组织表的结构  56
4.2  索引组织表的优势  57
4.3  创建索引组织表  58
4.4  添加溢出段  60
4.5  压缩索引组织表  62
4.6  构建二级索引  63
4.7  重建索引组织表  66
4.8  索引组织表报告  67
4.9  小结  68
第5章  专门索引  69
5.1  不可见索引  69
5.1.1  不可见索引的用途  69
5.1.2  创建不可见索引  70
5.1.3  在数据库中查找不可见索引  71
5.1.4  让优化器使用不可见索引  71
5.1.5  维护不可见索引  72
5.2  基于函数的索引  72
5.2.1  创建基于函数的索引  73
5.2.2  基于函数的索引的限制  76
5.2.3  收集基于函数的索引的统计信息  77
5.3  虚拟列上的索引  78
5.4  键压缩索引  80
5.4.1  键压缩的用途  81
5.4.2  创建压缩索引  82
5.4.3  键压缩和存储  84
5.5  复合索引  85
5.5.1  了解索引跳跃式扫描和复合索引  85
5.5.2  在复合索引中对列进行排列  86
5.5.3  为复合索引选择键  87
5.6  创建虚拟索引  89
5.7  反向键索引  91
5.7.1  反向键索引的缺点  92
5.7.2  反向键索引的用途  94
5.7.3  创建反向键索引  94
5.8  应用程序域索引  94
5.9  小结  95
第6章  分区索引  96
6.1  分区索引  96
6.2  创建本地分区索引  97
6.2.1  最简单的形式  97
6.2.2  分区级的需求  98
6.2.3  前缀和非前缀选项  99
6.3  管理主键和唯一索引  99
6.4  创建全局分区索引  101
6.5  为应用程序选择索引  105
6.6  维护分区表的索引  106
6.6.1  添加分区  106
6.6.2  截断分区  107
6.6.3  移动分区  108
6.6.4  拆分分区  108
6.6.5  交换分区  110
6.6.6  删除分区  111
6.6.7  合并分区  111
6.7  重建全局分区索引和非分区索引  112
6.8  把索引分区设置为不可用后重建  113
6.9  索引对间隔分区的影响  115
6.10  使旧的数据只读  116
6.11  报告分区索引  116
6.12  小结  118
第7章  索引使用调优  119
7.1  优化器访问路径  119
7.2  索引扫描  120
7.2.1  索引唯一扫描  120
7.2.2  索引范围扫描  121
7.2.3  索引跳跃式扫描  123
7.2.4  全索引扫描  124
7.2.5  索引快速全扫描  125
7.3  确定查询是否使用了索引  125
7.4  避免使用索引  127
7.4.1  在任何情况下都不使用某个索引  127
7.4.2  只避免快速扫描  128
7.4.3  强制表扫描  128
7.5  在索引和表扫描之间选择  128
7.6  优化器忽略索引的原因  129
7.6.1  不同的行数  129
7.6.2  索引聚簇因子  130
7.7  索引访问路径因没有新的统计信息而改变  131
7.7.1  使用不等条件  131
7.7.2  使用通配符查询  133
7.7.3  在谓词中引用空值  134
7.7.4  在查询中包含函数  135
7.7.5  跳过索引的前导部分  136
7.8  强制优化器使用索引  136
7.8.1  应用index提示  137
7.8.2  应用相关的提示  138
7.8.3  对失败的索引提示进行诊断  139
7.8.4  调整optimizer_index_cost_adj参数  140
7.8.5  为索引收集准确的统计信息  142
7.9  并行化索引访问  143
7.10  小结  144
第8章  维护索引  145
8.1  收集索引统计信息  145
8.1.1  dbms_stats包  145
8.1.2  method_opt参数  147
8.2  处理不可用索引  148
8.2.1  使索引不可用  149
8.2.2  指定skip_unusable_indexes参数  150
8.3  管理索引使用的空间  153
8.3.1  重建索引以减少碎片  153
8.3.2  重建反向键索引  154
8.3.3  回收未使用的空间  154
8.3.4  重建分区索引  154
8.3.5  频繁重建索引  157
8.4  index_stats视图在重建索引时的作用  157
8.4.1  index_stats视图的优点  158
8.4.2  index_stats视图的问题  160
8.5  关于重建索引的争论  162
8.5.1  重建索引的理由  162
8.5.2  反对重建的理由  163
8.5.3  关于重建索引的建议  163
8.6  合并索引来减少碎片  164
8.7  收缩索引以减少碎片  165
8.8  移动表和索引  166
8.9  提高创建索引的效率  167
8.9.1  并行创建索引  167
8.9.2  避免在索引创建期间生成重做  168
8.9.3  使用较大的块  169
8.9.4  压缩索引  169
8.9.5  同时使用多个选项  170
8.10  生成ddl从而创建索引  170
8.10.1  使用dbms_metadata包  170
8.10.2  使用session_transform存储过程  171
8.10.3  使用set_filter存储过程  172
8.10.4  使用数据泵  173
8.11  删除索引  173
8.12  小结  174
第9章  sql调优顾问  176
9.1  工具之间的联系  176
9.2  自动sql调优作业  178
9.2.1  验证自动作业在运行  178
9.2.2  查看自动sql调优作业中的建议  179
9.2.3  生成sql脚本来实施自动调优建议  181
9.2.4  禁用和启用自动sql调优  182
9.3  管理sql调优集  183
9.3.1  在awr中查看占用大量资源的sql  184
9.3.2  查看内存中使用大量资源的sql  186
9.3.3  用awr中占用大量资源的sql填充sql调优集  187
9.3.4  用内存中占用大量资源的sql填充sql调优集  188
9.3.5  用内存中所有的sql来填充sql调优集  189
9.3.6  显示sql调优集的内容  190
9.3.7  选择性删除sql调优集中的语句  192
9.3.8  将语句添加到现有的sql调优集  193
9.3.9  删除sql调优集  193
9.4  运行sql调优顾问  193
9.4.1  创建调优任务  195
9.4.2  执行dbms_sqltune并查看建议  197
9.4.3  查看和删除调优任务  197
9.4.4  从sql developer中运行sql调优顾问  197
9.4.5  从企业管理器运行sql调优顾问  198
9.5  小结  199
第10章  sql访问顾问  200
10.1  为单个sql语句生成的建议  201
10.2  获得一组sql语句的建议  203
10.3  查询顾问视图  209
10.4  小结  210

本图书信息来源:中国互动出版网


    
[2] 获得andorid手机SD卡路径 2.1和2.2区别
    来源: 互联网  发布时间: 2014-02-18
取得andorid手机SD卡路径 2.1和2.2区别

1、存储卡路径:

  android2.1系统为 /sdcard

  android2.2系统为/mnt/sdcard

2、通过代码获取存储卡路径,如下:

  Environment.getExternalStorageDirectory();


    
[3] 基于ARM体系结构的嵌入式开发(一)-移植第一个驱动程序
    来源: 互联网  发布时间: 2014-02-18
基于ARM体系结构的嵌入式开发(1)-----移植第一个驱动程序

本文是基于s3c2440,arm9内核的linux开发

一.选用arm开发板;S3C2440  (天嵌的那款)

买来的板子已经移植好uboot,linux内核。所以先用secureCRT链接开发板,然后执行命令 uname -a

Linux EmbedSky 2.6.30.4-EmbedSky

二.PC机装上linux操作系统

1)安装虚拟机:vmware

2)安装操作系统:fedore 14(界面非常友好)

这两个软件下载都很容易的

3)下载linux内核 (版本要与arm上移植的相同)    内核下载

4)将内核压缩文件复制到fedore14 操作系统,在终端输入命令:

tar xjvf  linux-2.6.30.4_20100531.tar.bz2  -C/linux-2.6.30

-C表示解压后的目标文件夹

三.熟悉linux界面

1.熟悉linux的常用命令

上面  tar xjvf  linux-2.6.30.4_20100531.tar.bz2  -C/linux-2.6.30 就是解压文件

linux 命令格式为 命令+[选项的方式]


了解vi编辑器,这是linux系统下的一种常用的文本编辑方式

详细的命令及vi的介绍见  linux命令详解

2.了解shell                                                               

这个可以暂时不看,有兴趣的同学可以参考   shell参考资料

3.gcc编译器

和学习其他语言,使用编译器是一样的道理,将高级语言编译为硬件能明白的语言。

这里值得一提的是交叉编译器,采用的是ARM-LINUX-gcc   。因为arm板或者说其他嵌入式平台,其本身资源很少,没有足够的资源去运行编译开发工具,调试工具。所以我们要在本机上编译,然后移植到嵌入式平台中执行

。有关ARM-linux-gcc版本和linux内核版本问题将在下文提到


eg.现在终端输入vi  test-1.c ,进入vi编辑器

#include<stdio.h>

void main()

{

printf(“hello,world!”);

}

esc  :wq 保存退出

然后在终端下执行gcc  test_1.c -o  test_1 

然后执行  ./test-1  即可打印出hello,world!

4.关于smb(window与linux之间的通信) nfs(linux与linux之间的通信) 网上资料很多,就不提了。对于本实验,也用不到上述服务

具体可参考这篇     配置smb和nfs


四.移植第一个驱动程序


这是嵌入式开发的基本架构,右侧只是举了个例子。

linux的驱动开发有两种方法:1.直接编译到内核,再运行新的内核来测试

2.编译模块的方式,单独加载进行调试

1)由于是第一个驱动程序,所以首先必须要编译内核。

编译内核:终端下进入linux内核目录  ,

#make menuconfig 进入 load an alternate configuration file

输入 arch/arm/configs/s3c2440_defconfig 

ok

在system type 选单中s3c24**中只选中smdk2410/a9m2410,smdk2440, smdk2440 with s3c2440 cpu mode

保存配置文件为.config

终端下输入#make zImage   (如果要移植内核到开发板,可以以JTAG方式将生成的zimage移植到开发板上)

2)移植驱动程序

将厂家提供的模块EmbedSky_gpio.c复制到内核目录的drivers/char 目录

1、修改同目录下的Kconfig

添加下面代码 [此选项将会在内核配置界面显示]

config TQ2440_GPIO_TEST
tristate "EmbedSky SKY2440/TQ2440 Board GPIO Test(control LED)"
depends on ARCH_S3C2440
default y if ARCH_S3C2440
help
 GPIO control for EmbedSky SKY2440/TQ2440 Board.

2、修改同目录下的Makefile

obj-$(CONFIG_TQ2440_GPIO_TEST)+= EmbedSky_gpio.o

3、配置内核 DEVICE drivers -character devices 选中

4、终端输入

#make SUBDIR=drivers/char modules

或者另外为EmbedSky_gpio.c建一个文件,编写相应的Makefile

obj-m   :=EmbedSky_gpio.o
KERNELDIR := /linux-2.6.30/linux-2.6.30.4/   #指向内核目录
PWD := $(shell pwd)
all:
        $(MAKE) -C $(KERNELDIR) M=$(PWD) modules


clean:
        rm -rf *.o *.ko *.mod.* *.symvers
.PHONY: all clean

make.生成.ko文件

5.insmod 加载到内核模块

这时出现个错误

insmod: errorinserting 'EmbedSky_gpio.ko': -1 Invalid module format

查看日志 #cat   /var/log/messages |tail

显示

Nov  8 19:11:06 localhost smbd[5242]: [2012/11/0819:11:06.786765,  0]printing/print_cups.c:109(cups_connect)

Nov  8 19:11:06 localhost smbd[5242]:   Unable to connect to CUPS serverlocalhost:631 - Connection refused

Nov  8 19:11:06 localhost smbd[1790]: [2012/11/0819:11:06.787232,  0]printing/print_cups.c:468(cups_async_callback)

Nov  8 19:11:06 localhost smbd[1790]:   failed to retrieve printer list:NT_STATUS_UNSUCCESSFUL

都是smb什么的。这应该和smb没什么关系啊

根据意思,是模块不匹配

网上百度了一下,发现犯这个错误的人真是不少,找了些文章看了下,发现都是说要加载的模块指定的内核版本与当前的内核版本不一致。需要修改成一致。

这里要说明下有关版本的问题:

首先得明确你是要基于什么开发的,PC 机的linux下,还是嵌入式平台。我之前已经说过,我是基于arm体系结构,我arm上移植了linux操作系统,我现在要基于ARM上的linux操作系统开发,我只是在PC机的linux系统下开发而已。所以我要加载的模块指定的内核版本和我linux系统版本没多大关系,也不需要匹配的。所以网友提高的错误应该不是我的错误。我将.ko文件复制,用U盘挂载到arm上。执行insmod 命令时提示错误

version magic '2.6.30.4 mod_unload ARMv4 ' should be '2.6.30.4-EmbedSky mod_unload ARMv4 

为什么linux内核版本都是2.6.30 ,还是提示有错误呢。后来想到我这是天嵌的平台,可能有别于其他平台。

所以重新配置内核,在Local version 中加入 -EmbedSky  退出保存为.config 然后重新编译内核。编译模块,重新加载,最后解决了问题。



    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
sqlserver iis7站长之家
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3