精华内容
下载资源
问答
  • 内存区域的结构函数:vm_area_struct,通常称为VMA,是指虚拟内存,在include/linux/mm_types.h定义 书上常说内存区块,指就是内存映射后虚拟地址区块,内存映射如下面所述,是指从物理内存映射到虚拟内存 ...

    内存区域的结构函数:vm_area_struct,通常称为VMA,是指虚拟内存,在include/linux/mm_types.h定义

    书上常说的内存区块,指的就是内存映射后的虚拟地址区块,内存映射如下面所述,是指从物理内存映射到虚拟内存

    struct vm_area_struct {
    	struct mm_struct * vm_mm;	/* The address space we belong to. */
    	unsigned long vm_start;		/* Our start address within vm_mm. */
    	unsigned long vm_end;		/* The first byte after our end address
    					   within vm_mm. */
    
    	/* linked list of VM areas per task, sorted by address */
    	struct vm_area_struct *vm_next, *vm_prev;
    
    	pgprot_t vm_page_prot;		/* Access permissions of this VMA. */
    	unsigned long vm_flags;		/* Flags, see mm.h. */
    
    	struct rb_node vm_rb;
    
    	/*
    	 * For areas with an address space and backing store,
    	 * linkage into the address_space->i_mmap prio tree, or
    	 * linkage to the list of like vmas hanging off its node, or
    	 * linkage of vma in the address_space->i_mmap_nonlinear list.
    	 */
    	union {
    		struct {
    			struct list_head list;
    			void *parent;	/* aligns with prio_tree_node parent */
    			struct vm_area_struct *head;
    		} vm_set;
    
    		struct raw_prio_tree_node prio_tree_node;
    	} shared;
    
    	/*
    	 * A file's MAP_PRIVATE vma can be in both i_mmap tree and anon_vma
    	 * list, after a COW of one of the file pages.	A MAP_SHARED vma
    	 * can only be in the i_mmap tree.  An anonymous MAP_PRIVATE, stack
    	 * or brk vma (with NULL file) can only be in an anon_vma list.
    	 */
    	struct list_head anon_vma_chain; /* Serialized by mmap_sem &
    					  * page_table_lock */
    	struct anon_vma *anon_vma;	/* Serialized by page_table_lock */
    
    	/* Function pointers to deal with this struct. */
    	const struct vm_operations_struct *vm_ops;
    
    	/* Information about our backing store: */
    	unsigned long vm_pgoff;		/* Offset (within vm_file) in PAGE_SIZE
    					   units, *not* PAGE_CACHE_SIZE */
    	struct file * vm_file;		/* File we map to (can be NULL). */
    	void * vm_private_data;		/* was vm_pte (shared mem) */
    	unsigned long vm_truncate_count;/* truncate_count or restart_addr */
    
    #ifndef CONFIG_MMU
    	struct vm_region *vm_region;	/* NOMMU mapping region */
    #endif
    #ifdef CONFIG_NUMA
    	struct mempolicy *vm_policy;	/* NUMA policy for the VMA */
    #endif
    };

    内存描述符结构函数:mm_struct。在include/linux/mm_types.h

     struct mm_struct {
    	struct vm_area_struct * mmap;		/* list of VMAs */
    	struct rb_root mm_rb;
    	struct vm_area_struct * mmap_cache;	/* last find_vma result */
    #ifdef CONFIG_MMU
    	unsigned long (*get_unmapped_area) (struct file *filp,
    				unsigned long addr, unsigned long len,
    				unsigned long pgoff, unsigned long flags);
    	void (*unmap_area) (struct mm_struct *mm, unsigned long addr);
    #endif
    	unsigned long mmap_base;		/* base of mmap area */
    	unsigned long task_size;		/* size of task vm space */
    	unsigned long cached_hole_size; 	/* if non-zero, the largest hole below free_area_cache */
    	unsigned long free_area_cache;		/* first hole of size cached_hole_size or larger */
    	pgd_t * pgd;
    	atomic_t mm_users;			/* How many users with user space? */
    	atomic_t mm_count;			/* How many references to "struct mm_struct" (users count as 1) */
    	int map_count;				/* number of VMAs */
    	struct rw_semaphore mmap_sem;
    	spinlock_t page_table_lock;		/* Protects page tables and some counters */
    
    	struct list_head mmlist;		/* List of maybe swapped mm's.	These are globally strung
    						 * together off init_mm.mmlist, and are protected
    						 * by mmlist_lock
    						 */
    
    
    	unsigned long hiwater_rss;	/* High-watermark of RSS usage */
    	unsigned long hiwater_vm;	/* High-water virtual memory usage */
    
    	unsigned long total_vm, locked_vm, shared_vm, exec_vm;
    	unsigned long stack_vm, reserved_vm, def_flags, nr_ptes;
    	unsigned long start_code, end_code, start_data, end_data;
    	unsigned long start_brk, brk, start_stack;
    	unsigned long arg_start, arg_end, env_start, env_end;
    
    	unsigned long saved_auxv[AT_VECTOR_SIZE]; /* for /proc/PID/auxv */
    
    	/*
    	 * Special counters, in some configurations protected by the
    	 * page_table_lock, in other configurations by being atomic.
    	 */
    	struct mm_rss_stat rss_stat;
    
    	struct linux_binfmt *binfmt;
    
    	cpumask_t cpu_vm_mask;
    
    	/* Architecture-specific MM context */
    	mm_context_t context;
    
    	/* Swap token stuff */
    	/*
    	 * Last value of global fault stamp as seen by this process.
    	 * In other words, this value gives an indication of how long
    	 * it has been since this task got the token.
    	 * Look at mm/thrash.c
    	 */
    	unsigned int faultstamp;
    	unsigned int token_priority;
    	unsigned int last_interval;
    
    	unsigned long flags; /* Must use atomic bitops to access the bits */
    
    	struct core_state *core_state; /* coredumping support */
    #ifdef CONFIG_AIO
    	spinlock_t		ioctx_lock;
    	struct hlist_head	ioctx_list;
    #endif
    #ifdef CONFIG_MM_OWNER
    	/*
    	 * "owner" points to a task that is regarded as the canonical
    	 * user/owner of this mm. All of the following must be true in
    	 * order for it to be changed:
    	 *
    	 * current == mm->owner
    	 * current->mm != mm
    	 * new_owner->mm == mm
    	 * new_owner->alloc_lock is held
    	 */
    	struct task_struct *owner;
    #endif
    
    #ifdef CONFIG_PROC_FS
    	/* store ref to file /proc/<pid>/exe symlink points to */
    	struct file *exe_file;
    	unsigned long num_exe_file_vmas;
    #endif
    #ifdef CONFIG_MMU_NOTIFIER
    	struct mmu_notifier_mm *mmu_notifier_mm;
    #endif
    };
    以下参考http://blog.csdn.net/hongchangfirst/article/details/7076207
    
    该结构体可以通过进程描述符来得到,比如current是当前进程的描述符,则current->mm是指向内存的指针。mm是指向struct mm_struct的指针。
    若还想对Linux的进程描述符有一定了解,可以参考task_struct。



    内存映射是要把硬件映射到虚拟内存,例如一个硬件设备,把它映射到虚拟内存/dev下面,然后访问。一开始我的疑问是它是虚拟内存映射到物理内存,还是反过来?这样看来,应该是物理内存映射到虚拟内存。


    展开全文
  • 【Oracle笔记】表空间的概念

    万次阅读 2018-03-29 23:51:51
    1、表空间的概念 ORACLE数据库被划分成称作为表空间的逻辑区域——形成ORACLE数据库的逻辑结构。一个ORACLE数据库能够有一个或多个表空间,而一个表空间则对应着一个或多个物理的数据库文件。表空间是ORACLE数据库...

    一、表空间的概念

      ORACLE数据库被划分成称作为表空间的逻辑区域——形成ORACLE数据库的逻辑结构。一个ORACLE数据库能够有一个或多个表空间,而一个表空间则对应着一个或多个物理的数据库文件。表空间是ORACLE数据库恢复的最小单位,容纳着许多数据库实体,如表、视图、索引、聚簇、回退段和临时段等。
      每个ORACLE数据库均有SYSTEM表空间,这是数据库创建时自动创建的。SYSTEM表空间必须总要保持联机,因为其包含着数据库运行所要求的基本信息(关于整个数据库的数据字典、联机求助机制、所有回退段、临时段和自举段、所有的用户数据库实体、其它ORACLE软件产品要求的表)。

    二、表空间的作用

      它能帮助DBA用户完成以下工作:

    • 决定数据库实体的空间分配;
    • 设置数据库用户的空间份额;
    • 控制数据库部分数据的可用性;
    • 分布数据于不同的设备之间以改善性能;
    • 备份和恢复数据。

      用户创建其数据库实体时,必须给予表空间中具有相应的权力,所以对一个用户来说,其要操纵一个ORACLE数据库中的数据,应该:

    • 被授予关于一个或多个表空间中的RESOURCE特权;
    • 被指定缺省表空间;
    • 被分配指定表空间的存储空间使用份额;
    • 被指定缺省临时段表空间,建立不同的表空间,设置最大的存储容量。
    展开全文
  • 首次考虑了山区领土景观空间数字化结构的概念。 建议对景观系统进行结构化和分类,并分配高空景观群。 当找到这些复合物的边界时,主要采用高空选择标准,以及内部成分的数量和质量变化。 根据这些标准,可以区分...
  • 数据结构之基本概念

    千次阅读 2021-01-26 16:42:05
    前言:本文为数据结构之基本概念,根据陈越姥姥网课而整合笔记。 一、什么是数据结构 我们以几个栗子展开解释: 栗子1:如何在书架上摆放图书?——如何在空间中储存数据? 图书摆放需要有2个相关操作来实现 ...

    前言:本文为数据结构之基本概念,根据陈越姥姥的网课而整合的笔记。

    一、什么是数据结构

    我们以几个栗子展开解释:

    栗子1:如何在书架上摆放图书?——如何在空间中储存数据?

    图书的摆放需要有2个相关操作来实现

    操作1:新书怎么插入? 操作2:怎么找到指定的某本书?

    方法1:随便放(操作1实现简易,操作2实现困难)

    方法2:按照书名的拼音字母顺序排放,二分法查找书(操作1实现困难,操作2 实现简易)

    方法3:把书分成类别划分书架区域,按照书名的拼音字母顺序排放(操作1,操作2 均实现容易)

    总结:解决问题方法的效率跟数据的组织方式有关。

    栗子2:写程序实现一个函数PrintN,使得传入一个正整数为N的参数后,能顺序打印从1到N的全部正整数

    方法一:循环实现

    void PrintN(int N)
    {
      int i;
      for(i=1;i<=N'i++){
        printf("%d\n",i);
      }
      return;
    }
    

    方法二:递归实现

    void PrintN(int N)
    {
      if(N){
        PrintN(N-1);
        printf("%d\n",N);
      }
      return;
    }
    

    当代入N为100,1000,10000,10000…时,会发现N过于大时,方法二因内存过大不执行。

    总结:解决问题方法的效率,跟空间的利用效率有关。

    栗子3:写程序计算给定多项式在给定点x处的值

    方法一:f(x)=a(0)+a(1)x+…+a(n)x**(n)

    double f(int n,double a[],double x)
    {
      int i;
      double p=a[0];
      for(i=1;i<=n;i++)
      	p+=(a[i]*pow(x,i));
      return p;
    }
    

    方法二:f(x)=a(0)+x(a(1)+x(…(a(n-1)+x(a(n)))…))

    double f(int n,double a[],double x)
    {
      int i;
      double p=a[n];
      for(i=n;i>0;i--)
      	p=a[i-1]+x*p;
      return p;
    }
    

    调用clock()计算程序运行时间,发现方法二单次运行的时间较长。

    总结:解决问题方法的效率,跟算法的巧妙程度有关。

    所以什么是数据结构?

    1.数据对象在计算机中的组织方式

    (1)逻辑结构

    • 同属一个集合,没有关系——集合结构
    • 一对一——线性结构
    • 一对多——树型结构
    • 多对多——图形结构

    (2)物理存储结构

    以数组储存还是以链表储存

    2.数据对象必定与一系列加在其上的操作相关联

    3.完成这些操作所用的方法就是算法

    怎么描述数据结构?

    抽象数据类型

    数据类型

    • 数据对象集
    • 数据集合相关联的操作集

    抽象:描述数据类型的方法不依赖于具体实现

    • 与存放数据的机器无关
    • 与数据存储的物理结构无关
    • 与实现操作的算法和编程语言均无关

    只描述数据对象集合相关操作机”是什么“,并不涉及“如何做到”的问题
    总结:没有完美的数据结构,只有最合适的数据结构。应该因地制宜,不同的用途(查找、插入…)采用不同的数据结构来提高效率

    二、什么是算法

    算法

    1.一个有限指令集

    2.接受一些输入(有些情况下不需要输入)

    3.产生输出

    4.一定在有限步骤之后终止

    5.每一条指令必须

    • 有充分明确的目标,不可以有歧义
    • 计算机能处理的范围之内
    • 描述应不依赖于任何一种计算机语言以及具体的实现手段

    什么是好的算法?

    • 空间复杂度S(n)——根据算法写成的程序在执行时占用存储单元的长度。这个长度往往与输入数据的规模有关。空间复杂度过高的算法可能导致内存超限,造成程序非正常中断,如栗子二。
    • 时间复杂度T(n)——根据算法写成的程序在执行时耗费时间的长度。这个长度往往也与输入数据的规模有关。时间复杂度过高的低效算法可能导致我们在有生之年都等不到运行结果,如栗子三。
      总结:好的算法应该占用内存小,耗费时间短。

    复杂度分析小窍门

    • 若两段算法分别有复杂度T1(n)=O(f1(n))和T2(n)=O(f2(n)),则
      1. T1(n)+T2(n)=max(O(f1(n),O(f2(n)))
      2. T1(n)xT2(n)=O(f1(n)x(f2(n))
    • 若T(n)是关于n的k阶多项式,那么T(n)=o(n**k)
    • 一个for循环的时间复杂度等于循环次数乘以循环体代码的复杂度
    • if-else结构的复杂度取决于if的条件判断复杂度和两个分支部分的复杂度,总体复杂度取三者中最大的

    三、应用实例

    题目:给定N个整数的序列{A1,A2,…,AN},求函数f(i,j)=max{0,{Ai+A(i+1)+…+Aj}}的最大值。

    算法1:

    int MaxSubseqSum1(int A[],int N)
    {
      int ThisSum, MaxSum = 0;
      int i,j,k;
      for(i=0;i<N;i++){   /*i是子列左端位置*/
        for(j=i;j<N;j++){   /*j是子列右端位置*/
          ThisSum=0;   /*ThisSum是从A[i]到A[j]的子列和*/
          for(k=i;k<=j;k++)
          	ThisSum+=A[k];
          if(ThisSum>MaxSum)   /*如果刚得到的这个子列和更大*/
          	MaxSum=ThisSum;   /*则更新结果*/
        }/*j循环结束*/
      }/*i循环结束*/
      return MaxSum;
    }                                                         
    

    T(N)=O(N**3)

    算法2:

    int MaxSubseqSum2(int A[],int N)
    {
      int ThisSum, MaxSum = 0;
      int i,j;
      for(i=0;i<N;i++){   /*i是子列左端位置*/
      	ThisSum=0;   /*ThisSum是从A[i]到A[j]的子列和*/
        for(j=i;j<N;j++){   /*j是子列右端位置*/
          ThisSum+=A[j];   /*对于相同的i,不同的j,只要在j-1次循环的基础上累加1项即可*/
          if(ThisSum>MaxSum)   /*如果刚得到的这个子列和更大*/
          	MaxSum=ThisSum;   /*则更新结果*/
        }/*j循环结束*/
      }/*i循环结束*/
      return MaxSum;
    

    T(N)=O(N**2)

    算法3:分而治之

    把一个比较大的复杂的问题切分成小的块,然后分头去解决它们,最后再把结果合并起来,这就是“分而治之”

    对于此问题,假设该问题是放在一个数组里面,首先第一步是”分“,也就是把这个数组从中间一分为二,然后递归地去解决左右两边的问题。递归地去解决左边的问题,我们会得到左边的一个最大子列和;递归地去解决右边的问题,我们会得到右边的一个最大子列和。还有一种情况时跨越边界的最大子列和。把这三个结果合成起来就叫做“治”。

    我们来用个图举个栗子以供理解:
    在这里插入图片描述

    算法4:在线处理

    int MaxSubseqSum4(int A[],int N)
    {
      int ThisSum, MaxSum;
      int i;
      for(i=0;i<N;i++){
          ThisSum+=A[i];   /*向右累加*/
          if(ThisSum>MaxSum)
          	MaxSum=ThisSum;   /*发现更大和则更新当前结果*/
          else if(ThisSum<0)   /*如果当前子列和为负*/
          	ThisSum=0;   /*则不可能使后面的部分和增大,抛弃之*/
       }
      return MaxSum;
     }
    

    T(N)=O(N)

    "在线"的意思是指每输入一个数据就进行即时处理,在任何一个地方中止输入,算法都能正确给出当前的解。

    四种算法运行时间相比较如下:
    在这里插入图片描述

    可知第四种算法更为优解。

    声明:部分资料源自网络,如有侵权,请联系我删除!
    文中如存在谬误、混淆等不足,欢迎批评指正!

    展开全文
  • 苏州市住宅地价空间结构演变分析,张涛,,城市地价是一个具有时空性质多维概念,其在空间、时间分布上具有较强关联性和特殊性。本文以苏州市建城区为研究区域,住宅地
  • oracle表空间和数据字典的概念

    千次阅读 2014-12-19 14:40:06
     表空间:  SQL Server数据库与Oracle数据库之间最大区别要属表空间设计。... ORACLE数据库被划分成称作为表空间的逻辑区域——形成ORACLE数据库逻辑结构。一个ORACLE数据库能够有一个
    

    表空间:

       SQL Server数据库与Oracle数据库之间最大的区别要属表空间设计。Oracle数据库开创性地提出了表空间的设计理念,这为Oracle数据库的高性能做出了不可磨灭的贡献。可以这么说,Oracle中很多优化都是基于表空间的设计理念而实现的。

       ORACLE数据库被划分成称作为表空间的逻辑区域——形成ORACLE数据库的逻辑结构。一个ORACLE数据库能够有一个或多个表空间,而一个表空间则对应着一个或多个物理的数据库文件。表空间是ORACLE数据库恢复的最小单位,容纳着许多数据库实体,如表、视图、索引、聚簇、回退段和临时段等。

       

    表空间的作用能帮助DBA用户完成以下工作:
    1.决定数据库实体的空间分配;
    2.设置数据库用户的空间份额;
    3.控制数据库部分数据的可用性;
    4.分布数据于不同的设备之间以改善性能;
    5.备份和恢复数据。


    数据字典:
     
      数据字典是oracle存放关于数据库内部信息的地方,其用途是用来描述数据库内部的运行和管理情况。比如,一个数据表的所有者,创建时间,所属表空间,用户访问权限等信息,这些信息都可以再数据字典中查找到;
       数据字典随着数据库建立而建立;
       数据字典的内容是随着数据库特定的操作而更新的;

    组成: 
      1、数据项 
      2、数据结构 
      3、数据流 
      4、数据存储 
      5、处理过程
    展开全文
  • 数据结构一(概念

    2017-08-29 10:57:23
    数据结构一(概念) 一、线性表 1、顺序表 (1)元素在内存中是以顺序存储。 (2)内存划分的区域是一个连续单元。 (3)线性表中节点类型相同,则所占存储空间大小亦相同。 2、链表 (1)物理上是离散...
  • 进程地址空间与进程内存区域

    千次阅读 2011-05-23 23:16:00
    首先进程地址空间和进程内存区域是两个概念:1.进程地址空间:系统中每个用户空间进程所看到内存(虚拟内存).内核采用mm_struct结构来描述进程地址空间。2.进程内存区域:在进程地址空间中,我们更关心是进程...
  • Innodb空间是在配置文件中定义(说是表空间有时觉有点羞愧,和Oracle比真差太远了),这里简单列一下表空间基本概念及表分配情况。表空间是在配置文件中定义几个文件简单耦合起来,在使用中互不可少...
  • ORACLE数据库被划分成称作为表空间的逻辑区域——形成ORACLE数据库逻辑结构。 一个ORACLE数据库能够有一个或多个表空间,而一个表空间则对应着一个或多个物理数据库文件。表空间是ORACLE数据库恢复最小单位,...
  • 负责从文件系统或网络中加载class信息,存放至方法区内存空间【2】java堆--->虚拟机启动时建立。java主要内存工作区域。--->存放:java对象实例。--->所有线程共享【3】方法区--->存放:class信息,...
  • Java虚拟机所管理的...在虚拟机的概念模型里,字节码解释器工作时就是通过改变这个计数器的值来选择下一条需要执行的字节码指令。分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个计数器来完成。 ...
  • 作为开始写下来吧安慰一下自己 空间数据模型:场模型和对象模型,前者适合于形状不定空间结构,后者适合于离散可识别结构场模型操作:local,focal和zonal 对象模型操作:集合、欧氏、拓扑和度量两个空间区域的...
  • SPP-net全名为Spatial Pyramid Pooling 结构空间金字塔池化结构),2015年由微软研究院何恺明提出。 主要解决两个问题: 有效避免了R-CNN算法对图像区域剪裁、缩放操作导致图像物体剪裁不全以及形状扭曲等问题...
  • java虚拟机解构图一 java虚拟机解构图二 ...负责从文件系统或网络中加载class信息,存放至方法区内存空间【2】java堆 --->虚拟机启动时建立。java主要内存工作区域。 --->存放:java对象实例。 ---&...
  • Day 22 : 树的概念

    2020-10-14 22:17:54
    Tree用来模拟具有树状结构性质数据集合 二维空间的集合,是由有限节点组成一个层次关系集合。 树具有以下特点: 每个节点有零个或多个子节点 没有父节点节点称为根节点 非根节点只能有一个父节点 除了根...
  • 进程:进程是操作系统结构的基础;是一个正在执行的程序! 其特点:进程的概念主要有两点:第一,进程是一个实体。每一个进程都有它自己的地址空间,一般情况下,包括文本区域(text region)、数据区域(data ...
  • 1、先说下三个概念:数据库管理系统(DBMS):是指数据库系统中对数据进行管理软件系统,比如们现在装oracle 11g就是一款数据库管理系统。数据库(DB):是指基于储存在硬件上数据文件、控制文件、日志文件等各类...
  • 文章目录堆核心概念堆内存结构细分新生代与老年代对象分配正常过程 堆核心概念 Java堆区在JVM启动时候即被创建。是JVM管理最大一块内存空间,是GC执行垃圾回收重点区域。 一个JVM实例只存在一个堆...
  • 栈和堆的概念和区别

    2019-07-23 16:27:29
    在进程地址布局(如下图),可见地址分布情况,栈和堆所在位置区域。 栈:由编译器自动分配释放,存放函数参数值、局部变量值等。其操作方式类似于数据结构栈。每当一个函数被调用,该函数返回地址和...
  • 数据位域的概念

    2015-03-02 22:33:10
    为了节省存储空间,并使处理简便,C语言提供了一种数据结构,称为“位域”或“位段”。 所谓“位域”是把一个字节中二进位划分为几个不同的区域, 并说明每个区域的位数。每个域有一个域名,允许在程序中按域名...
  • 1.程序计数器程序计数器(Program Counter Register)是一块较小内存空间,它可以看作是当前线程所执行字节码行号器。在虚拟机概念模型里,字节码解释器工作时就是通过改变这个计数器值来选取下一条需要执行...
  • 编译和解释运行的概念 一、JVM启动流程: JVM启动时,是由java命令/javaw命令来启动的。 二、JVM基本结构: JVM基本结构图: 《深入理解Java虚拟机(第二版)》中的描述是下面这个样子的: Java中的...
  • 以符拉迪沃斯托克(Vladivostok)市区的俄罗斯岛屿和邻近岛屿系统为例,研究了局部水平(比例为1:25,000)的景观空间数字矢量层结构的概念。 对景观系统的内部和外部内容进行综合,分析和评估,并确定区域的海拔...
  • ISP控制结构

    2021-01-21 14:40:18
    lens 将光信号投射到sensor 感光区域后,sensor 经过光电转换,将Bayer 格式原始图像送给ISP,ISP 经过算法处理,输出RGB空间图像给后端视频采集单元。在这个过程中,ISP通过运行在其上fir
  • 我们引入功能协变微分作为以明显协变方式研究场空间几何的工具。 然后,我们讨论其在规范理论和有限区域上的广义... 通过提出结论,我们提出的结构可以令人满意地实现规范理论和广义相对论中(非渐近)观察者的概念
  • Oracle表空间的作用

    2019-09-09 21:37:19
    一 Oracle表空间的概念 ORACLE数据库被划分成称作为表空间的逻辑区域——形成ORACLE数据库的逻辑结构。 一个ORACLE数据库能够有一个或多个表空间,而一个表空间则对应着一个或多个物理的数据库文件,但一个数据库...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 400
精华内容 160
关键字:

区域空间结构的概念