Microsoft SQL Server和Azure SQL数据库非空间写入器参数
数据库连接
数据库格式包括一个数据库连接参数定义和存储认证信息。有关共享数据库连接的一般信息,请参阅使用数据库连接。 注意,数据库连接参数可能会略有不同,这取决于上下文和/或数据库格式。 |
选择现有连接,或添加数据库连接来定义一个新的连接。
新连接只能对当前用户可见,也可以在多个用户之间共享。
连接参数(添加数据库连接对话框) |
---|
服务器
在Microsoft SQL Server或Azure的SQL数据库的主机名。(这是没有必要指定端口如果使用默认配置。) 如果已经配置了您的Microsoft SQL Server数据库使用非标准的端口号,你可以在这里指定该端口。 正确的语法是:
数据库
要启动一个数据库连接,输入(或浏览)数据库名称。
认证
用户名和密码
输入用户名和密码才能访问该服务。
加密连接
注意:">注意:该参数不存在于Azure的SQL数据库的读写器。Azure的SQL数据库读写器将始终要求安全套接字层(SSL)加密连接。 选中时,此参数请求安全套接字层(SSL)加密的连接。如果服务器没有客户端机器信任的证书,连接将失败。否则,数据将通过网络在出行前进行加密。有多种方法可以信任的客户端机器上安装服务器证书。 如果不选择此参数,加密行为将被用于SQL Server Native Client的设置加密特性决定,并为SQL Server。 小费:什么时候加密连接被选中,请提供一个完全合格的服务器名称。例如,一台服务器命名亚搏在线安全-SQL服务器可能有一个完全合格的名称亚搏在线safe-sql-server.dev.safe。这完全合格的名称应该是可信的证书上的服务器名称完全匹配。 |
如果数据库还没有返回结果,在此之后终止对数据库的查询的时间(以秒为单位)。
如果设置为0,则没有超时。默认值是30。
注意:">注意:如果这个值设置得不够高,那么查询将返回错误提供程序错误 - 超时过期。
先进的
当设置为Yes时,该参数将插入模式从逐个特性更改为批处理模式。这可以导致6到10倍的插入速度。妥协是减少错误的粒度,一个无效的特性可能导致整个事务的失败。
注意:">注意:大容量插入的速度将随着事务大小的增加而增加(更少的事务=更快的插入)。更大的事务大小也意味着如果事务失败,将有更多的行需要重新插入。
在Microsoft Azure SQL数据库非空间(MSSQL_AZURE)中,批量插入非常重要,因为插入速度增加了300倍。然而,为了让批量模式在Azure下工作,服务器和用户名参数必须改变:
- 服务器:TCP:SERVERNAME.database.windows.net
- 用户名:用户名@ SERVERNAME
其余的参数可以保持不变。
注意:">注意:批量插入(默认设置为Yes)会使外键约束失效,从而提高加载速度。您可以在导航器中将此参数设置为No,或者在写入后修复外键约束。
此参数指定最后一个成功事务的事务号。第一次加载数据时,将此值设置为0。
该参数告诉编写器何时开始将特性实际写入数据库。直到传入的特性属于事务编号超过指定事务编号1的事务时,写入器才写入任何特性。
将值指定为0(这是通常的设置)将导致输出每个特性。非零值仅在数据加载操作在中途失败后恢复时指定。
该参数对于事务失败后恢复写操作非常有用。日志将打印一条类似这样的消息:
翻译中止 - 重新运行通过设置参数作家“交易开始写在”为n
在哪里ñ是交易编号。事务号是一个整数序列(0、1、2、3,等等)。记录了事务号的所有特性都将被回滚。
此时,您可能会发现服务器访问问题或输入特性中的问题,例如违反目标表的主键约束的特性。如果您可以在不改变输入特性的顺序的情况下解决这个问题(例如,恢复对服务器的访问,或者重新生成特性上的主键属性值),那么您可以按照日志消息中的指令重新执行翻译。
在重新运行期间,被记录的事务号之前的事务中的所有特性都由翻译处理,输入写入器,然后被忽略。属于事务数等于或大于记录的事务数的特性将被写入目标表。
注意:">注意:如果将此参数设置为0,则写入所有特性。
此参数设置在将事务提交到数据库之前要放置在每个事务中的特性数量。
默认值500用作事务间隔。
如果该参数设置为0,则使用基于功能的事务。当编写器处理每个特性时,将检查它是否有一个名为的属性fme_db_transaction。此属性的值指定写入器应该提交还是回滚当前事务。
属性的值可以是COMMIT_BEFORE,COMMIT_AFTER,ROLLBACK_AFTER或忽视。如果fme_db_transaction属性未在任何特性中设置,则整个写操作将在单个事务中发生。
该参数允许在打开表进行写入之前执行SQL语句。例如,在尝试写入约束之前,可能需要删除它。只有当第一个特性到达写入器时,这些语句才会执行。
有关SQL函数的详细信息,请单击
。可用的菜单选项取决于格式。
属性指定的字符可以分隔多个SQL命令FME_SQL_DELIMITER
指令,嵌入在SQL块的开头。该指令后面的单个字符将用于将SQL块分割成SQL语句,然后将SQL语句发送到数据库执行。注意:在字符前加上空格。
例如:
FME_SQL_DELIMITER;DELETE FROM导师;DELETE FROM人WHERE姓氏= '李四' AND名字= '约翰'
多个分隔符不允许和分隔符将被发送到数据库之前被剥离。
这些SQL语句的执行过程中出现的任何错误,通常会终止读取器或写入(取决于其中执行SQL语句)一个错误。如果指定的语句由一个连字符(“ - ”)开头,这样的错误被忽略。
此参数允许SQL语句的执行一组表已经写入之后。例如,可能有必要创建后清理临时图。
有关SQL函数的详细信息,请单击
。可用的菜单选项取决于格式。
属性指定的字符可以分隔多个SQL命令FME_SQL_DELIMITER
指令,嵌入在SQL块的开头。该指令后面的单个字符将用于将SQL块分割成SQL语句,然后将SQL语句发送到数据库执行。注意:在字符前加上空格。
例如:
FME_SQL_DELIMITER;DELETE FROM导师;DELETE FROM人WHERE姓氏= '李四' AND名字= '约翰'
多个分隔符不允许和分隔符将被发送到数据库之前被剥离。
这些SQL语句的执行过程中出现的任何错误,通常会终止读取器或写入(取决于其中执行SQL语句)一个错误。如果指定的语句由一个连字符(“ - ”)开头,这样的错误被忽略。