我正在调试一个崩溃的新应用程序.我想在将消息写入日志时查看消息.我应该使用什么命令?
我将通过声明我正在使用Oracle 10g企业版并且我对Oracle相对较新来解释这个问题.
我有一个包含以下架构的表:
ID integer (pk) -- unique index
PERSON_ID integer (fk) -- b-tree index
NAME_PART nvarchar -- b-tree index
NAME_PART_ID integer (fk) -- bitmap index
Run Code Online (Sandbox Code Playgroud)
它PERSON_ID是人员记录的唯一ID的外键.这NAME_PART_ID是具有静态值的查找表的外键,如"名字","中间名","姓氏"等.表的要点是分别存储人名的各个部分.每个人的记录至少都有一个名字.在尝试提取数据时,我首先考虑使用连接,如下所示:
select
first_name.person_id,
first_name.name_part,
middle_name.name_part,
last_name.name_part
from
NAME_PARTS first_name
left join
NAME_PARTS middle_name
on first_name.person_id = middle_name.person_id
left join
NAME_PARTS last_name
on first_name.person_id = last_name.person_id
where
first_name.name_part_id = 1
and middle_name.name_part_id = 2
and last_name.name_part_id = 3;
Run Code Online (Sandbox Code Playgroud)
但该表有数千万条记录,并且NAME_PART_ID未使用该列的位图索引.解释计划表明优化器正在使用全表扫描和散列连接来检索数据.
有什么建议?
编辑:表格设计的原因是因为数据库用于几种不同的文化,每种文化都有不同的个人命名惯例(例如在一些中东文化中,个人通常有名字,然后他们的父亲的名字,然后他父亲的名字等).很难创建一个包含多个列的表来解释所有文化差异.
使用ActiveX数据对象2.8库作为Excel VBA的参考,连接字符串是:
"Driver = {Microsoft ODBC for Oracle} ......."
我还在Windows XP的ODBC管理器的驱动程序选项卡中有"Microsoft ODBC for Oracle"(MSORCL32.dll)条目.
现在,我能否连接到oracle数据库,而我的机器上没有安装任何oracle客户端/产品?
使用Java Iterator,我使用该hasNext方法来确定迭代是否具有更多元素(不消耗元素) - 因此,hasNext就像一个" Peek"方法.
我的问题:C#的通用s 有什么类似于" hasNext"或" Peek"的方法IEnumerator吗?
我过去没有做太多的调整,所以这可能相对容易,但我遇到了问题.这就是我做的:
innodb_log_file_size)开始没问题,但所有InnoDB表都有.frm文件无效错误,状态显示InnoDB引擎被禁用,所以我显然回去,删除更改,一切都恢复正常.
我能够改变我尝试过的所有其他变量,但我似乎无法找出为什么即使在删除日志文件后InnoDB也无法启动.我错过了什么吗?
谢谢.
编辑:粘贴下面的日志 - 看起来它似乎仍然找到日志文件,即使它们不存在?
关掉:
090813 10:00:14 InnoDB: Starting shutdown...
090813 10:00:17 InnoDB: Shutdown completed; log sequence number 0 739268981
090813 10:00:17 [Note] /usr/sbin/mysqld: Shutdown complete
Run Code Online (Sandbox Code Playgroud)
进行更改后启动:
InnoDB: Error: log file ./ib_logfile0 is of different size 0 5242880 bytes
InnoDB: than specified in the .cnf file 0 268435456 bytes!
090813 11:00:18 [Warning] 'user' entry 'root@XXXXX.com' ignored in --skip-name-resolve mode.
090813 11:00:18 [Note] /usr/sbin/mysqld: ready for connections.
Version: '5.0.81-community-log' socket: '/var/lib/mysql/mysql.sock' port: …Run Code Online (Sandbox Code Playgroud) 我注意到类似问题的线程:在.NET中限制Queue <T>的大小?
这正是我想要做的,但我不是在使用.net而是使用GNU C++.我没有引用GNU C++中的基类,所以像java super.***()或.net之类的java base.***()将不起作用.我一直试图从队列类继承,但事实证明是徒劳的.
我想做的事:指定队列的大小,并在队列满时自动出队.具体来说:如果队列的最大大小为2,当我按下第3项时,第1项将在推送新项目之前自动弹出.
如何实现这样的队列?
谢谢.
该命令将删除系统中的文件.我的意思是它只从Git-repository中删除文件.
如何在不删除系统中的文件的情况下从Git存储库中删除该文件?
我的同事对svn更新的工作方式有问题,但我不确定原因,所以这个问题有两个方面.首先,如何以他想要的方式解决他的问题,其次,我是否应该试着让他相信TortoiseSVN现在做事的方式是最好的方式(如果是的话,如何)?
他的理想用例
我想这是一个合理的请求,但他不想信任SVN的事实困扰我,虽然它并没有真正影响我或我的工作.他之前使用的是CVS,SVN和ClearCase,他并不擅长版本控制.他声称他之前能够在svn中做到这一点(同时,他也是我多年的大四学生).