文档彩票走势图>>dbForge Data Compare for MySQL教程>>dbForge Data Compare for MySQL入门教程:服务器端和客户端排序和筛选
dbForge Data Compare for MySQL入门教程:服务器端和客户端排序和筛选
在dbForge Data Compare for MySQL的数据生成器中,可以在客户端或服务器端执行数据的排序和过滤。
如果表中的记录不多,则在从表中检索数据或执行SELECT语句后,它们都会显示在结果网格中。如果要对这些记录进行排序或使用过滤器,则会在客户端执行过滤和排序过程,并处理所有可用记录。但是,如果表中有许多记录,则在执行SELECT语句或一次检索数据后不会显示它们,因为此类操作可能导致客户端计算机挂起或与操作过多数据相关的其他一些问题。
另一种情况是,当网格中没有显示所有记录时,就是当Paginal Mode打开并且有更多记录,然后是一页上显示的记录数。在这些情况下,如果执行客户端排序或筛选,则仅处理客户端计算机上可用的记录。这意味着您将无法获得过滤或排序的完整结果。这就是为什么数据生成器在网格中不能显示所有记录时执行服务器端过滤或排序。
执行服务器端筛选或排序时,应用程序会向服务器发送一个查询,该查询是对起始查询的修改。这种方式的缺点是服务器资源被占用,但好处是用户将获得完整的排序或过滤结果。但是一旦收到所有记录,例如,在按CTRL + END或滚动到结尾之后,将关闭服务器端筛选和排序,并使用客户端筛选和排序。
服务器端排序和过滤期间可能出现的问题:
在某些情况下,应用程序无法修改起始查询以将其发送到服务器并执行服务器端排序或过滤。这些情况如下:
- SELECT子句中有一个没有别名的表达式。实际上这是对MS SQL Server的限制 - 无法在SELECT子句中修改包含没有别名的语句的查询。如果列没有别名,则无法对其他列中的数据进行排序或过滤,直到获取所有数据或给出别名为止。
- 有一个ORDER BY子句的查询。在这种情况下,不能执行服务器端筛选,这是因为SQL Server限制。