Oracle优化排序的操作是什么呢?
Oracle优化排序的操作是什么呢?
服务器首先在sort_area_size指定大小的内存区域里排序,如果所需的空间超过sort_area_size,排序会在临时表空间里进行。在专用服务器模式下,排序空间在PGA中,在共享服务器模式下,排序空间在UGA中。如果没有建立large pool,UGA处于shared pool中,如果建立了large pool,UGA就处于large pool中,而PGA不在sga中,它是与每个进程对应单独存在的。
PGA:program global area,为单个进程(服务器进程或后台进程)保存数据和控制信息的内存区域。PGA与进程一一对应,且只能被起对应的进程读写,PGA在用户登录数据库创建会话的时候建立。 有关排序空间自动管理的两个参数: Pga_aggregate_target: 10M-4000G,等于分配给oracle instance的所有内存减去SGA后的大小。
Workarea_size_policy: auto/manual,只有Pga_aggregate_target已定义时才能设置为auto。 这两个参数会取代所有的*_area_size参数。 措施: 尽可能避免排序;尽可能在内存中排序;分配合适的临时空间以减少空间分配调用。
2、需要进行排序的操作: A、创建索引; B、涉及到索引维护的并行插入 C、order by或者group by(尽可能对索引字段排序) D、Distinct E、union/intersect/minus F、sort-merge join G、analyze命令(仅可能使用estamate而不是compute) 3、诊断和措施 临时表空间的配置: A、initial/next设置为sort_area_size的整数倍,允许额外的一个block作为segment的header B、pctincrease=0 C、基于不同的排序需要建立多个临时表空间 D、将临时表空间文件分散到多个磁盘上> 考试大在线题库 oracle/认证更多详细资料。
答:1. //按照笔划排序 2. select * from dept order by nlssort(name,'NLS_SORT=SCHINESE_STROK...详情>>