鎖和表分割槽

2021-08-18 07:27:54 字數 4175 閱讀 5571

鎖可以分為,行鎖,表級鎖,死鎖。

表級鎖有:行共享,行排他,共享鎖,排他鎖

--檢視當前資料庫裡鎖的情況。

select object_id,session_id,locked_mode from v$locked_object;

如果出現了鎖的問題,某個dml操作可能等待很久沒有反應。

grant select on emp to newlifeyhj;

grant delete on emp to newlifeyhj;

grant all on emp to newlifeyhj;

-- 訪問許可權精細到列。 報錯 ora-00905: 缺少關鍵字

grant update on emp(sal) to newlifeyhj; 

grant select on emp(ename,sal) to newlifeyhj;

--修改,鎖定資源。只到提交了才會執行。

update scott.emp set sal = sal +100 where empno = '7369';

將scott.emp表的查詢,修改許可權給newlifeyhj來測試。

--表擁有者執行加鎖查詢

--select * from emp where empno = '7369' for update wait 5;

--select * from emp where empno = '7369' for update nowait;

commit;

--for update of 專用於連線查詢中鎖定某乙個或是某幾個表。

--表擁有者對錶進行共享鎖定

--lock table emp in share mode;

select * from emp where empno='7369'

--rollback;

--共享更新

--lock table emp in share update mode;

select * from scott.emp where empno = '7369';

--排他鎖

--lock table emp in exclusive mode;

--rollback;

##表分割槽##

#範圍分割槽#

create table student(

stu_name varchar2(8),

stu_age number(2)

)partition by range(stu_age)

(partition p1 values less than(12),

partition p2 values less than(16),

partition p3 values less than(20),

partition p4 values less than(maxvalue)

);desc user_tab_partitions

select table_name,partition_name from user_tab_partitions where table_name = 'student';   //表名區分大小寫。

select table_name,partition_name,high_value,tablespace_name from user_tab_partitions where table_name = 'student';

--分割槽查詢--

select * from student partition(p1);

select * from student partition(p2);

select * from student partition(p3);

select * from student partition(p4);

#列表分割槽#

create table student2(

stu_name varchar2(8),

stu_age number(2),

stu_address varchar2(12)

)partition by list(stu_address)(

partition east values('向陽村','紅旗廣場'),

partition south values('南大門','電單車大市場'),

partition west values('馬家河','炎帝廣場'),

partition north values('響石廣場','清石廣場')

);insert into student2 values ('aniu',12, '向陽村');

insert into student2 values ('aniu',15, '南大門');

insert into student2 values ('aniu',17, '清石廣場');

insert into student2 values ('aniu',19, '炎帝廣場');

select * from student2;

select * from student2 partition(east);

select * from student2 partition(west);

按分割槽刪除資料。

delete from student2 partition(east);

select table_name, partition_name, high_value, tablespace_name from user_tab_partitions where table_name = 'student2';

#雜湊分割槽#

create table employee(

employee_id varchar2(5),

employee_name varchar2(20),

department varchar2(10)

)partition by hash(department)(

partition d1,

partition d2,

partition d3

);#復合分割槽#

範圍分割槽與雜湊分割槽或列表分割槽的組合。

create table sales

(product_id varchar2 (5),

sales_date date not null,

sales_cost number (10)

)partition by range (sales_date)

subpartition by hash (product_id)

subpartitions 5 

(partition s1 values less than (to_date(『01/4月/2001',

'dd/mon/yyyy')),

partition s2 values less than (to_date(『01/7月/2001',

'dd/mon/yyyy')),

partition s3 values less than (to_date(『01/9月/2001',

'dd/mon/yyyy')),

partition s4 values less than (maxvalue)

);##表分割槽維護##

--刪除分割槽-- 刪除乙個指定的分割槽,分割槽的資料也隨之刪除。

--alter table student drop partition p4;

--增加分割槽--

--alter table student add partition p5 values less than(90);

--截斷分割槽-- 刪除指定分割槽中的所有記錄

--alter table student truncate partition p3;

--合併分割槽--  ora-14012: 結果分割槽名與現有分割槽名發生衝突, p6新的分割槽名。

alter table student merge partitions p1,p2 into partition p6;

--拆分分割槽--

alter table sales split partition p2 at(1500) into (partition p21,partition p22);

select table_name, partition_name from user_tab_partitions where table_name = 'student';

Oracle分割槽和鎖

表空間 是乙個或者多個資料檔案的集合,所有的資料物件都存放在表空間中,但主要存放的是表,所有叫表空間 分割槽表 當表中的資料不斷增大的時候,我們查詢資料會變慢,這時候我們要考慮把資料存放在多個檔案上,表分割槽後資料在邏輯上仍然是一張完整的表 只是將表中的資料在磁碟上存放多個檔案上,這樣我們查詢的時候...

mysql鎖和分割槽

mysql 鎖 myisam 在執行查詢語句前,會自動涉及的所有表加讀鎖,在執行增刪改操作前,會自動 給涉及的表加寫鎖 1.對myisam 表的讀操作 加讀鎖 不會阻塞其他程序對同一表的讀請求,但會阻塞對同一表的 寫請求。只有讀鎖釋放後,才會執行其他進行的寫操作 2.對myisam 表的寫操作 加寫...

表鎖和全域性鎖

目錄 鎖的作用 處理併發問題 鎖的分類 全域性鎖表級鎖 行鎖 命令 flush tables with read lock ftwrl 這個庫處理唯讀狀態 全庫邏輯備份問題 1 主庫備份,業務停擺 2 從庫備份,不能執行binlog,導致主從延遲 在不支援事物的引擎下可以使用 有事務機制的備份 my...