2012年3月28日 周三

本文分享了作者在一天工作时间内,从9:00到公司开始,到4:00处理case,再到6:30研究Oracle的相关经验。通过实际操作,作者深入理解了Oracle中的v$lock视图的概念,即当一个事务尝试获取一个行上的锁时,如果该锁已被另一个事务获取,事务会被加入等待队列。同时,文章也提到了个人在学习过程中的挑战和收获。
9:00				到公司
9:00	9:30		整理准备

不能晚睡啊

9:30	4:00	case
4:00	6:30	oracle

看了一下午的oracle,状态不好,没看进去什么。更有可能是看错方向了。不过有点收获,明白了v$lock 是个enqueue的视图这个概念。

在oracle中,一个transaction去申请一个row上的锁的时候,会发现这个锁已经被另一个transaction获取了,于是这个transaction就把自己加入一个等待queue中。而v$lock就记录了这些在queue中的lock。


新闻 0.5 case 5.5  学习1.5

要编写一个C语言程序来判断任意输入份的3月1是星期几,并以20003月1星期三作为参考基准,我们可以先创建一个基准期(如20003月1)的星期几变量,然后利用Zeller's congruence算法计算其他份的3月1相对于这个基准的偏移量。这里是相应的代码: ```c #include <stdio.h> #include <stdbool.h> // 添加头文件以支持布尔值 // 定义基准期和其星期 const int base_year = 2000; const int base_month = 3; const int base_day = 1; const char base_weekday[] = "Wednesday"; // 基准为周三 // Zeller's congruence 函数 char get_weekday(int year, int month, int day) { int century = year / 100; int week_day = (day + ((13 * (month + 1)) / 5) + century + century / 4 - century / 100 + century / 400) % 7; // 将星期从0-6转换为与base_weekday相对应的英文字符 switch (week_day) { case 0: return "Sunday"; case 1: return "Monday"; case 2: return "Tuesday"; case 3: return "Wednesday"; case 4: return "Thursday"; case 5: return "Friday"; case 6: return "Saturday"; } } int main() { int year, month, day; char reference_weekday[10]; // 输入份 printf("请输入份: "); scanf("%d", &year); // 输入月份和期 printf("请输入月份(1-12): "); scanf("%d", &month); printf("请输入期: "); scanf("%d", &day); // 计算给定期的星期 char actual_weekday = get_weekday(year, month, day); // 判断是否为星期三 if (!strcmp(actual_weekday, base_weekday)) { printf("%d%02d月%02d是星期三,与20003月1同为基准.\n", year, month, day); } else { printf("%d%02d月%02d不是星期三,与20003月1相比有偏差.\n", year, month, day); } return 0; }
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值