我正在開發一個應用程序,將使用firebird嵌入和/或postgres取決於用戶的複雜程度。嵌入firebird的觀點是應該有更少的安裝,防火牆,UAC等問題。到目前爲止,postgres就像走在雲端,但我已經與firebird碰到一個障礙。應用程序是.net和我正在使用此提供商http://www.firebirdsql.org/en/net-provider/版本3.0.2firebird嵌入多個插入使用.net提供者
一切技術上的工作,但與嵌入式火鳥我每秒只插入大約100條記錄,而與Postgres它是每秒超過3000!通過postgres,我可以將大量的INSERT INTO ...語句作爲一個命令來啓動,這很好。對於火鳥來說,它不太好。這是什麼工作(緩慢)
String query = @"INSERT INTO Customers(ID, Name, SiteID) VALUES(1,'delta',2);
INSERT INTO Customers(ID, Name, SiteID) VALUES(2,'phoenix',2);
";
FbScript fbs = new FbScript(query);
fbs.Parse();
FbConnection fbc = new FbConnection(ConnectionString);
FbBatchExecution fbe = new FbBatchExecution(fbc, fbs);
fbe.Execute(true);
但是,我試圖做沒有解析。類似這裏的第二個答案Run multiple insert queries against firebird database using isql或這裏http://www.firebirdfaq.org/faq336/
String sql = @"set term^;
EXECUTE BLOCK AS BEGIN
INSERT INTO Customers(ID, Name, SiteID) VALUES(1,'delta',2);
INSERT INTO Customers(ID, Name, SiteID) VALUES(2,'phoenix',2);
end^";
FbCommand cmd = new FbCommand();
PrepareCommand(cmd, connection, (FbTransaction)null, CommandType.Text, sql, commandParameters, out mustCloseConnection);
cmd.ExecuteNonQuery();
有了這個東西,我得到的異常
Dynamic SQL Error
SQL error code = -104
Token unknown - line 1, column 5
term
是第一種方式的唯一途徑?它是如此緩慢:(
非常感謝。這工作正常 –