How to make SQL server return last rows first in select not using order by -


i have table 350 000 rows. when search top 50 50 oldest rows. there way make sql server start bottom last 50 rows bin inserted?

we have performance issue cant use syntax loop through records.

if add order id takes 14 sec instead of 1 sec. use dynamic sql solve search functionality dynamic table structure.

alter procedure [cs.core].[spdynamicsearchinsurancedemocar] 

@chassisnumber nvarchar(50) = null, @firstowner bit = null, @groupid int = null, @insurancenumber int = null, @insuredid int = null, @model nvarchar(50) = null, @owneryearofbirth int = null, @registrationnumber nvarchar(12) = null, @stakeholderid int = null, @statusid int = null, @userid int, @languageid int set nocount on; begin declare @sql nvarchar(max),@paramlist nvarchar(4000) select @sql ='select top 50 insurance.insuranceid, isnull(productcaption.captiontext, [cs.core].entity.name) product_462, stakeholder.refstakeholdername stakeholder_1093, insurance.validfrom validfrom_925, insurance.insurancenumber, insurance.groupid, insurance.statusid, insurance.validfrom, democar.registrationnumber, democar.year, democar.chassisnumber, democar.firstowner, democar.model [cs.entity].insurance inner join [cs.core].entity on insurance.entityid = entity.entityid left join [cs.entity].stakeholder on insurance.stakeholderid = stakeholder.stakeholderid left join [cs.core].caption productcaption on (productcaption.captioncode = entity.textid , productcaption.languageid = @languageid) inner join [cs.entity].[democar] on [cs.entity].[democar].[rootid] = [cs.entity].[insurance].[insuranceid] [cs.entity].insurance.groupid in (select secgroupid [cs.security].secrelation secuserid = @userid)' if @chassisnumber not null if charindex('%',@chassisnumber) > 0 select @sql = @sql + ' , ([cs.entity].[democar].[chassisnumber] @chassisnumber)' else select @sql = @sql + ' , ([cs.entity].[democar].[chassisnumber] = @chassisnumber)' if @firstowner not null select @sql = @sql + ' , ([cs.entity].[democar].[firstowner] = @firstowner)' if @groupid not null select @sql = @sql + ' , ([cs.entity].[insurance].[groupid] = @groupid)' if @insurancenumber not null select @sql = @sql + ' , ([cs.entity].[insurance].[insurancenumber] = @insurancenumber)' if @insuredid not null select @sql = @sql + ' , ([cs.entity].[insurance].[insuredid] = @insuredid)' if @model not null if charindex('%',@model) > 0 select @sql = @sql + ' , ([cs.entity].[democar].[model] @model)' else select @sql = @sql + ' , ([cs.entity].[democar].[model] = @model)' if @owneryearofbirth not null select @sql = @sql + ' , ([cs.entity].[democar].[year] = @owneryearofbirth)' if @registrationnumber not null if charindex('%',@registrationnumber)

0 select @sql = @sql + ' , ([cs.entity].[democar].[registrationnumber] @registrationnumber)' else select @sql = @sql + ' , ([cs.entity].[democar].[registrationnumber] = @registrationnumber)' if @stakeholderid not null select @sql = @sql + ' , ([cs.entity].[insurance].[stakeholderid] = @stakeholderid)' if @statusid not null select @sql = @sql + ' , ([cs.entity].[insurance].[statusid] = @statusid)' select @sql = @sql + ''

select @paramlist = '@chassisnumber nvarchar(50) = null, @firstowner bit = null, @groupid int = null, @insurancenumber int = null, @insuredid int = null, @model nvarchar(50) = null, @owneryearofbirth int = null, @registrationnumber nvarchar(12) = null, @stakeholderid int = null, @statusid int = null, @userid int, @languageid int' exec sp_executesql @sql, @paramlist,@chassisnumber,@firstowner,@groupid,@insurancenumber,@insuredid,@model,@owneryearofbirth,@registrationnumber,@stakeholderid,@statusid,@userid, @languageid end

"when search top 50 50 oldest rows."

no, 50 rows. period. 50 rows dbms chooses return. 50 more or less random rows.

if want 50 rows inserted last, you'll have have column stores such information (insertiondatetime). index it. can run:

select top (50)     *       mytable  order     insertiondatetime desc ;  

Comments

Popular posts from this blog

django - How can I change user group without delete record -

java - Need to add SOAP security token -

java - EclipseLink JPA Object is not a known entity type -