我正在尝试加速事实表加载,作为整体性能项目的一部分.该表仅约1.2亿行,每晚约10万.该表非常重要.
目前我正在使用SSIS快速加载OLE DB目标,加载100,000行大约需要15分钟.对于我来说,插入100k行似乎非常高,因此我更改了包以将其结果转储到临时表中,然后从该临时表中将T-SQL插入到事实表中.插入件现在运行不到1分钟.
我发现很简单,一个普通的旧T-SQL插件比SSIS Fast Load快,所以我开始查看在OLEDB目的地上检查了哪些盒子.事实证明没有检查表锁.当我选中此选项时,SSIS负载现在不到1分钟.我的问题是:
我今天已经工作了好几个小时,而且我非常接近解决方案,但显然需要一些人的帮助.我正试图通过iPhone将图像发布到Web服务.我先发布代码,然后解释我尝试过的所有内容:
NSData *imageData = UIImageJPEGRepresentation(barCodePic, .9);
NSString *soapMsg =
[NSString stringWithFormat:
@"<?xml version=\"1.0\" encoding=\"utf-8\"?><soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\"><soap:Body><WriteImage xmlns=\"http://myserver/imagewebservice/\"><ImgIn>%@</ImgIn></WriteImage></soap:Body></soap:Envelope>", [NSData dataWithData:imageData]
];
NSURL *url = [NSURL URLWithString:@"http://myserver/imagewebservice/service1.asmx"];
NSMutableURLRequest *req = [NSMutableURLRequest requestWithURL:url];
NSString *msgLength =
[NSString stringWithFormat:@"%d", [soapMsg length]];
[req addValue:@"text/xml; charset=utf-8" forHTTPHeaderField:@"Content-Type"];
[req addValue:@"http://myserver/imagewebservice/WriteImage" forHTTPHeaderField:@"SOAPAction"];
[req addValue:msgLength forHTTPHeaderField:@"Content-Length"];
[req setHTTPMethod:@"POST"];
[req setHTTPBody: [soapMsg dataUsingEncoding:NSUTF8StringEncoding]];
conn = [[NSURLConnection alloc] initWithRequest:req delegate:self];
if (conn) {
webData = [[NSMutableData data] retain];
}
Run Code Online (Sandbox Code Playgroud)
首先,这个代码适用于除图像之外的任何东西.Web服务在我的本地网络上运行,我可以随意更改源代码,如果我将"ImgIn"参数更改为字符串并传入一个字符串,一切正常,我得到一个返回值没问题.因此,根本没有连接问题,我能够在此服务器上调用并从此Web服务获取数据没有问题.但我需要通过ImgIn参数将图像上传到此Web服务,因此上面的代码是我迄今为止最好的镜头.我也有didReceiveResponse,didReceiveData,didFailWithError等都被处理.上面的代码每次都会触发didRecieveResponse.但是,didReceiveData永远不会被触发,就像Web服务本身甚至从未运行过一样.当我调试Web服务本身时,当我使用字符串参数时它运行和调试很好,但是使用image参数时,它甚至在我调用它时都不会进行调试.它几乎就像ImgIn参数太长(当我将它输出到屏幕时它很大)并且Web服务只是呛到它.我已经读过在使用这种方法时必须编码到Base64,但我找不到任何关于如何完成的良好链接.如果那就是我做错了,你能不能提供如何做到这一点的代码,而不仅仅是"你需要使用Base64",我真的很感激,因为我几乎找不到任何关于如何用例.除此之外,我有点失落,似乎我正在做其他一切正确的事情.请帮忙!几乎像ImgIn参数太长(当我将它输出到屏幕时它很大)并且Web服务只是呛到它.我已经读过在使用这种方法时必须编码到Base64,但我找不到任何关于如何完成的良好链接.如果那就是我做错了,你能不能提供如何做到这一点的代码,而不仅仅是"你需要使用Base64",我真的很感激,因为我几乎找不到任何关于如何用例.除此之外,我有点失落,似乎我正在做其他一切正确的事情.请帮忙!几乎像ImgIn参数太长(当我将它输出到屏幕时它很大)并且Web服务只是呛到它.我已经读过在使用这种方法时必须编码到Base64,但我找不到任何关于如何完成的良好链接.如果那就是我做错了,你能不能提供如何做到这一点的代码,而不仅仅是"你需要使用Base64",我真的很感激,因为我几乎找不到任何关于如何用例.除此之外,我有点失落,似乎我正在做其他一切正确的事情.请帮忙!你能不能提供如何做的代码,而不仅仅是"你需要使用Base64",我真的很感激,因为我几乎找不到如何用一个例子来实现它.除此之外,我有点失落,似乎我正在做其他一切正确的事情.请帮忙!你能不能提供如何做的代码,而不仅仅是"你需要使用Base64",我真的很感激,因为我几乎找不到如何用一个例子来实现它.除此之外,我有点失落,似乎我正在做其他一切正确的事情.请帮忙!
谢谢
所有,
我试图在不使用动态sql的情况下将插入从一个表拉到另一个表.但是,我现在提出的唯一解决方案是使用动态sql.搜索任何类似的场景都很棘手.
以下是详细信息:
我的出发点是以下遗留表:
CREATE TABLE [dbo].[_Combinations](
[AttributeID] [int] NULL,
[Value] [varchar](50) NULL
) ON [PRIMARY]
GO
INSERT [dbo].[_Combinations] ([AttributeID], [Value]) VALUES (16, N'1')
INSERT [dbo].[_Combinations] ([AttributeID], [Value]) VALUES (16, N'2')
INSERT [dbo].[_Combinations] ([AttributeID], [Value]) VALUES (28, N'Red')
INSERT [dbo].[_Combinations] ([AttributeID], [Value]) VALUES (28, N'Orange')
INSERT [dbo].[_Combinations] ([AttributeID], [Value]) VALUES (28, N'Yellow')
INSERT [dbo].[_Combinations] ([AttributeID], [Value]) VALUES (28, N'Green')
INSERT [dbo].[_Combinations] ([AttributeID], [Value]) VALUES (28, N'Blue')
INSERT [dbo].[_Combinations] ([AttributeID], [Value]) VALUES (28, N'Indigo')
INSERT [dbo].[_Combinations] ([AttributeID], [Value]) VALUES (28, N'Violet') …Run Code Online (Sandbox Code Playgroud) 我想使用导航来推送和弹出我的内容页面,但是我必须支持一些分辨率不高的旧手机,所以我需要尽可能多的屏幕.当我使用导航推送导航到内容页面时,我获得额外的空间和顶部的一行(不是我想要的):
但是,如果我只设置Application.Current.MainPage,我可以使用整个屏幕,这是我想要的:
无论如何使用导航页面并使用与我设置Application.Current.MainPage时相同的整个屏幕?
谢谢