在我的WiX项目中,我有一个文件数据和一个SQL脚本,它们创建db,创建/更改表插入/更新行等.所有脚本分为三个部分,并通过SqlScript元素执行.我使用ContinueOnError="no"但如果前一个脚本成功执行,则不会回滚.我可以在事务中包装所有脚本并使用try/catch块吗?有没有机会处理来自WiZ的捕获事件?您可以建议制作这样的安装程序吗?
我知道这个问题一直被问到.但是,对于非常具体的情况,这是一个非常具体的问题.希望你能够帮助我.
我运行一个日志数据库,大约有10个表.存储实际日志条目的主表有大约30个字段,其中5个是可搜索的.我说数据库最近变得中等大小,因为我们在该表中达到了2亿条目.其他表存储公共数据,其中最大的一个有4个字段,全部可搜索,有近100万个条目.所有其他表每个包含少于10万条记录.
插入物有尖峰.我每天凌晨2点得到前一天的格式(格式很差的)csv文件,直到上午8点才将它们(大约20个文件,每个10万行)插入到数据库中.然后我在工作日期间得到的选择很少(可能每天约1000个).然后冲洗并重复.
SELECT查询非常简单,因为它们主要由一个或两个GROUP BY语句组成.搜索此数据库的人想要立即获得结果,因此我在主表中有5个多列索引,这有助于我的精确搜索,目前,SELECT性能非常好.到目前为止,没有查询超过0.1秒.有一些报道,但这些生成大约需要10秒钟,这是可以接受的.
目前我有一个C程序,我写的是读取CSV文件中的数据,清理它,并按照每个INSERT查询分批插入1000行.这些INSERT并不完全愚蠢,因为我需要获取公共数据,看看它是否已经存在于其他表中,如果不存在则插入它,如果存在则将其缓存.它还以每秒插入的记录数量的形式提供了性能数据.这个程序非常快,没有将数据发送到数据库,我每秒大约有10万行.当然,这个程序和数据库位于同一台物理计算机上.
现在,我每天获得的数据呈线性增长,INSERT的性能呈对数下降趋势.昨天的数据需要5个半小时才能插入,每秒大约插入400行.
我通过将具有不同配置的前100万行插入到空数据库中来获得一些基准数据,这几乎是我得到的:
MyISAM表:以每秒1500行的速度开始,在插入第100万行InnoDB表时,以每秒对数减少约700行:与MyISAM相同,每秒只有大约100行速度更快InnoDB,主要禁用所有索引table:以每秒2100行开始,每秒减少到1000行.InnoDB使用索引,文件系统安装了数据写回(ext3):与InnoDB相同,只是稍微但几乎不明显更快.
innodb_buffer_pool_size设置为1000MB
避免索引创建不是一种选择,但很明显它对性能有很大影响.但是,我需要更快的插入.如数据所示,随着数据库的增长,插入将花费更长的时间,因此我每天获得的数据越来越大,我需要在插入性能上有一个巨大的飞跃.如果我能够达到每秒10000次插入或更多,那将非常棒.
系统监视器告诉我我的主要资源消耗是磁盘I/O,插入时几乎达到100%.因此,我需要一种超快速的方式来插入数据.我的理论限制是SATA总线,但这仍然很遥远.内存使用量似乎没有那么高,大约20%(或MySQL没有正确使用内存)
要实现这一点,可以在几天内重新创建数据库,然后从阅读器应用程序进行热交换,可以更改操作系统和MySQL中的任何设置,如果需要可以添加内存.如有必要,甚至可以更改数据库结构.
所以我在这里真的很开心.有人知道什么可以帮助我吗?
编辑:我正在考虑在MEMORY表中插入新行,然后在真实表中执行SELECT INTO.希望它只会在插入所有行后更新并刷新索引.我会在星期一试试.以前有人试过这样的事吗?
Android Honeycomb中的UI非常不同.我正在寻找开发人员感兴趣的事情.Google还没有更新它的UI指南,所以我试图通过检查布局来找到这些东西.我主要对图标的尺寸和新的视图类型感兴趣.
操作栏高度为56dp(?android:attr/actionBarSize).现在菜单图标似乎是32 x 32 dp,它们之前是48 x 48 dp.由于它们位于操作栏中,因此它们周围有很多填充物.带填充的菜单图标大小为64 x 56 dp.我需要这个,因为我试图把ProgressBar一个菜单项.
还有什么改变吗?此外,我对一些常见UI模式的大小感兴趣,例如邮件客户端等列表/详细布局的宽度.
如何在ASP.NET MVC中声明全局变量?
我试图在我的项目中包含外部python模块来处理会话.它被命名了gmemsess.py.它尝试在响应中添加Set-Cookie标头,并显示错误:
rh.response.headers.add_header('Set-Cookie','%s=%s; path=/;'%(name,self._sid))
AttributeError: HeaderDict instance has no attribute 'add_header'
Run Code Online (Sandbox Code Playgroud)
我阅读文档,一切似乎都没问题,但它不起作用.为什么会出现此错误?此外,我使用webapp2来管理子域.因为这个可能会出现问题吗?
是否可以在运行时使用python,perl或类似语言生成dalvik字节码?
谢谢
我正在尝试使用JAX-WS将文件保存到Sharepoint服务器.Web服务调用报告成功,但文件未显示.
我使用此命令(来自WinXP)生成Java代码以进行JAX-WS调用:
wsimport -keep -extension -Xnocompile http://hostname/sites/teamname/_vti_bin/Copy.asmx?WSDL
Run Code Online (Sandbox Code Playgroud)
我得到了一个Web服务的句柄,我port使用以下方法调用:CopySoap port = null;
if (userName != null && password != null) {
Copy service = new Copy();
port = service.getCopySoap();
((BindingProvider) port).getRequestContext().put(BindingProvider.USERNAME_PROPERTY, userName);
((BindingProvider) port).getRequestContext().put(BindingProvider.PASSWORD_PROPERTY, password);
} else {
throw new Exception("Holy Frijolé! Null userName and/or password!");
}
Run Code Online (Sandbox Code Playgroud)
我使用以下方法调用了Web服务:
port.copyIntoItems(sourceUrl, destUrlCollection, fields ,
"Contents of the file".getBytes(),
copyIntoItemsResult, copyResultCollection)
Run Code Online (Sandbox Code Playgroud)
在sourceUrl和中唯一的URL destUrlCollection等于"主机名/网站/ teamname /技术文档/子文件".
FieldInformationCollection名为的对象fields只包含一个FieldInformation.该FieldInformation对象具有"HelloWorld.txt"作为displayName,internalName和value的值.type属性设置为FieldType.FILE.id属性设置为(java.util.UUID.randomUUID()).toString().
copyIntoItems成功回归的呼吁; …
我有一个问题,我有点不好意思问,但似乎无法搞清楚.
我正在编写一个表单,允许用户过滤信息,以便只查看他们想要的内容.在表单中,我使用select_tag帮助程序作为下拉菜单.选择菜单由一组用户填充.我有以下代码:
<% @users.each do |user| %>
<%= select_tag "users", options_for_select([user.name]) %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
这个问题是它为@users数组中的每个user.name生成一个选择菜单.我假设问题是我在@users上使用.each.但是,今天早上我一直在努力解决这个问题,所以我想我只会问......
在使用select_tag帮助程序时,从数组中获取项目以填充到单个标记的正确方法是什么?
谢谢
我正在寻找一个explode类型函数,它将按字符分解字符串,但如果字符在其中,则还要取一个字符列表来忽略.
例如:
$str = "hello, this is, a test 'some, string' thanks";
explode_func($str, ",", "'");
Run Code Online (Sandbox Code Playgroud)
这会爆炸$str,,但忽略任何,内部'
预期产量:
Array
(
[0] => hello
[1] => this is
[2] => a test
[3] => thanks
)
Run Code Online (Sandbox Code Playgroud)
另一个例子是:
$str = "hello, this is, a test (some, string) thanks";
explode_func($str, ",", "()");
Run Code Online (Sandbox Code Playgroud)
这会爆炸$str的,,但忽略任何,之间(,并)得到相同的输出.
有任何想法吗?
我已经使用Java一段时间了,但我从未创建过GUI - 总是CLI.如何在Java中创建GUI?你能建议一个好的教程/参考吗?
我正在寻找一个简单的GUI,它有两个长文本区域和一些按钮.