自己之前一直是使用的通用的存储过程 ,也是封装好的只要传表名 然后 条件 等等 来到新环境 让自己写一个存储过程, 没办法 自己就需要写一个咯 之前写的比较多的是 按 top 来分页 现在公司要求是使用Row_number 当然 后者效率还是高一点 。至于索引什么的
自己之前一直是使用的通用的存储过程 ,也是封装好的只要传表名 然后 条件 等等
来到新环境 让自己写一个存储过程, 没办法 自己就需要写一个咯 之前写的比较多的是 按 top 来分页 现在公司要求是使用Row_number 当然 后者效率还是高一点 。至于索引什么的 暂时还没有用到 (有什么需求 现学也是可以的)其中也有 with(nolock) 但是会容易造成数据脏读。如果你有用到索引 或者你想看到你的语句查询开销 你可以使用(ctrl+M)键调出来。至于你看到这些占用啥的 懵了? 那就请你移驾 自行查找(我也不会你信吗?)
<code class=" hljs sql"> USE [JHMinGameDB] GO <span class="hljs-operator"><span class="hljs-keyword">SET</span> ANSI_NULLS <span class="hljs-keyword">ON</span> <span class="hljs-keyword">GO</span> <span class="hljs-keyword">SET</span> QUOTED_IDENTIFIER <span class="hljs-keyword">ON</span> <span class="hljs-keyword">GO</span> -- ============================================= -- Author: yanyunhai -- <span class="hljs-keyword">Create</span> <span class="hljs-keyword">date</span>: <span class="hljs-number">2016</span>-<span class="hljs-number">04</span>-<span class="hljs-number">13</span> -- Description: 新手送豆 -- ============================================= <span class="hljs-keyword">CREATE</span> <span class="hljs-keyword">PROCEDURE</span> [dbo].[Web_Active_Buyu_CardLog_page] --创建该存储过程名字(如已经存在 要改的时候就把 <span class="hljs-keyword">create</span> 变成 <span class="hljs-keyword">Alter</span>) @State <span class="hljs-keyword">int</span>, @startTime datetime, @endTime datetime, @pageSize <span class="hljs-keyword">int</span>, @pageIndex <span class="hljs-keyword">int</span>, @recd <span class="hljs-keyword">int</span> <span class="hljs-keyword">output</span>,--输出参数 @totalpeas <span class="hljs-keyword">int</span> <span class="hljs-keyword">output</span> --输出参数 <span class="hljs-keyword">AS</span> <span class="hljs-keyword">set</span> @recd=<span class="hljs-number">0</span> --赋值为<span class="hljs-number">0</span>是避免查询结果为<span class="hljs-number">0</span> 时 显示为<span class="hljs-keyword">null</span> <span class="hljs-keyword">set</span> @totalpeas=<span class="hljs-number">0</span> <span class="hljs-keyword">Declare</span> @recdst <span class="hljs-keyword">int</span>=<span class="hljs-number">0</span>,@recdend <span class="hljs-keyword">int</span>=<span class="hljs-number">0</span> --@recdst起始条数 <span class="hljs-keyword">Set</span> @recdst=@pageSize * (@pageIndex-<span class="hljs-number">1</span>)+<span class="hljs-number">1</span> -- @recdend 结束条数 <span class="hljs-keyword">Set</span> @recdend=@pageSize + @recdst-<span class="hljs-number">1</span> <span class="hljs-keyword">BEGIN</span> --在对于时间判断时建议 少用 between <span class="hljs-keyword">and</span> 因为 <span class="hljs-number">0</span>:<span class="hljs-number">00</span>-<span class="hljs-number">23</span>:<span class="hljs-number">59</span> <span class="hljs-keyword">declare</span> @SumNum1 <span class="hljs-keyword">int</span>,@SumNum2 <span class="hljs-keyword">int</span>,@SumNum3 <span class="hljs-keyword">int</span> <span class="hljs-keyword">select</span> @SumNum1=<span class="hljs-aggregate">COUNT</span>(*) <span class="hljs-keyword">from</span> Active_CardLog <span class="hljs-keyword">with</span>(nolock) <span class="hljs-keyword">where</span> [State]=<span class="hljs-number">0</span> <span class="hljs-keyword">select</span> @SumNum2=<span class="hljs-aggregate">COUNT</span>(*) <span class="hljs-keyword">from</span> Active_CardLog <span class="hljs-keyword">with</span>(nolock) <span class="hljs-keyword">where</span> [State]=<span class="hljs-number">1</span> <span class="hljs-keyword">select</span> @SumNum3=<span class="hljs-aggregate">COUNT</span>(*) <span class="hljs-keyword">from</span> Active_CardLog <span class="hljs-keyword">with</span>(nolock) <span class="hljs-keyword">where</span> [State]=<span class="hljs-number">1</span> <span class="hljs-keyword">and</span> UpTime>=@startTime <span class="hljs-keyword">and</span> UpTime<@endTime <span class="hljs-keyword">if</span> @State>=<span class="hljs-number">0</span> <span class="hljs-keyword">begin</span> <span class="hljs-keyword">select</span> row_number() over(<span class="hljs-keyword">order</span> <span class="hljs-keyword">by</span> UpTime <span class="hljs-keyword">desc</span>) <span class="hljs-keyword">as</span> rowid,a.id,CardID, CardPwd, CardNum, State, UserID, IP, UpTime, CreateTime,b.myname <span class="hljs-keyword">into</span> #tmp <span class="hljs-keyword">from</span> Active_CardLog a <span class="hljs-keyword">left</span> <span class="hljs-keyword">join</span> JH_member b <span class="hljs-keyword">on</span> b.idx=a.UserID <span class="hljs-keyword">where</span> State=@State --<span class="hljs-keyword">and</span> UpTime>=@startTime <span class="hljs-keyword">and</span> UpTime<@endTime <span class="hljs-keyword">select</span> @totalpeas=isnull(<span class="hljs-aggregate">SUM</span>(CardNum),<span class="hljs-number">0</span>),@recd=<span class="hljs-aggregate">count</span>(<span class="hljs-number">1</span>) <span class="hljs-keyword">from</span> #tmp <span class="hljs-keyword">select</span> rowid,CardID, CardPwd, CardNum, State, UserID, IP, UpTime, CreateTime,myname,@totalpeas sumnum,@recd sumRowID,@SumNum1 SumNum1,@SumNum2 SumNum2,@SumNum3 SumNum3 <span class="hljs-keyword">from</span> #tmp <span class="hljs-keyword">where</span> rowid between @recdst <span class="hljs-keyword">and</span> @recdend --根据rowid 来确定显示区间 <span class="hljs-keyword">drop</span> <span class="hljs-keyword">table</span> #tmp <span class="hljs-keyword">end</span> <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> @State<<span class="hljs-number">0</span> <span class="hljs-keyword">begin</span> <span class="hljs-keyword">select</span> row_number() over(<span class="hljs-keyword">order</span> <span class="hljs-keyword">by</span> UpTime <span class="hljs-keyword">desc</span>) <span class="hljs-keyword">as</span> rowid,a.id,CardID, CardPwd, CardNum, State, UserID, IP, UpTime, CreateTime,b.myname <span class="hljs-keyword">into</span> #temp <span class="hljs-keyword">from</span> Active_CardLog a <span class="hljs-keyword">left</span> <span class="hljs-keyword">join</span> JH_member b <span class="hljs-keyword">on</span> b.idx=a.UserID <span class="hljs-keyword">where</span> UpTime>=@startTime <span class="hljs-keyword">and</span> UpTime<@endTime <span class="hljs-keyword">select</span> @totalpeas=isnull(<span class="hljs-aggregate">SUM</span>(CardNum),<span class="hljs-number">0</span>),@recd=<span class="hljs-aggregate">count</span>(<span class="hljs-number">1</span>) <span class="hljs-keyword">from</span> #temp <span class="hljs-keyword">where</span> rowid between @recdst <span class="hljs-keyword">and</span> @recdend --根据rowid 来确定显示区间 <span class="hljs-keyword">drop</span> <span class="hljs-keyword">table</span> #temp <span class="hljs-keyword">end</span> <span class="hljs-keyword">END</span> - -其实上问可以用不用判断也可以解决这个问题 那就是用 <span class="hljs-keyword">where</span>(([State]=<span class="hljs-number">2</span>)<span class="hljs-keyword">or</span>([State]=@state)) - -有人在使用时 会出现 Rowid 报错?自己找找子查询 <span class="hljs-keyword">GO</span> </span></code>
——————– with (nolock)—-数据多的时候可以《索引之后的选择》—————–
使用情况: 当我们在下SQL Command时,在语法中加一段WITH (NOLOCK)可以改善在线大量查询的环境中数据集被LOCK的现象藉此改善查询的效能。
不过有一点千万要注意的就是,WITH (NOLOCK)的SQL SELECT有可能会造成数据脏读。
用法:select * from table with(nolock) left join table with(nolock) 表名后面接上 with (nolock)
注意事项:①也就是说当使用NoLock时,它允许阅读那些已经修改但是还没有交易完成的数据。因此如果有需要考虑transaction事务数据的实时完整性时,使用WITH (NOLOCK)就要好好考虑一下
②:with(nolock)的写法非常容易再指定索引。
跨服务器查询语句时 不能用with (nolock) 只能用nolock
同一个服务器查询时 则with (nolock)和nolock都可以用
比如:
select * from [IP].a.dbo.table1 with (nolock) 这样会提示用错误
select * from a.dbo.table1 with (nolock) 这样就可以
当然 你也可以看看 over() 开窗函数
其中的一些东西也是看前一任 程序员写的, 然后就有在园子里面看看介绍。 自己摘了一部分 因为看别人的东西的时候也没有做到用怀疑的态度去看 去分析 所以贴出来 。如果你看到以后有错误 有误区 欢迎指正!!
对你的能力是一次证明, 对我是一次帮助。 虚心求学。

Kedudukan MySQL dalam pangkalan data dan pengaturcaraan sangat penting. Ia adalah sistem pengurusan pangkalan data sumber terbuka yang digunakan secara meluas dalam pelbagai senario aplikasi. 1) MySQL menyediakan fungsi penyimpanan data, organisasi dan pengambilan data yang cekap, sistem sokongan web, mudah alih dan perusahaan. 2) Ia menggunakan seni bina pelanggan-pelayan, menyokong pelbagai enjin penyimpanan dan pengoptimuman indeks. 3) Penggunaan asas termasuk membuat jadual dan memasukkan data, dan penggunaan lanjutan melibatkan pelbagai meja dan pertanyaan kompleks. 4) Soalan -soalan yang sering ditanya seperti kesilapan sintaks SQL dan isu -isu prestasi boleh disahpepijat melalui arahan jelas dan log pertanyaan perlahan. 5) Kaedah pengoptimuman prestasi termasuk penggunaan indeks rasional, pertanyaan yang dioptimumkan dan penggunaan cache. Amalan terbaik termasuk menggunakan urus niaga dan preparedStatemen

MySQL sesuai untuk perusahaan kecil dan besar. 1) Perniagaan kecil boleh menggunakan MySQL untuk pengurusan data asas, seperti menyimpan maklumat pelanggan. 2) Perusahaan besar boleh menggunakan MySQL untuk memproses data besar dan logik perniagaan yang kompleks untuk mengoptimumkan prestasi pertanyaan dan pemprosesan transaksi.

InnoDB secara berkesan menghalang pembacaan hantu melalui mekanisme utama. 1) Kekunci seterusnya menggabungkan kunci baris dan kunci jurang untuk mengunci rekod dan jurang mereka untuk mengelakkan rekod baru daripada dimasukkan. 2) Dalam aplikasi praktikal, dengan mengoptimumkan pertanyaan dan menyesuaikan tahap pengasingan, persaingan kunci dapat dikurangkan dan prestasi konkurensi dapat ditingkatkan.

MySQL bukan bahasa pengaturcaraan, tetapi bahasa pertanyaannya SQL mempunyai ciri -ciri bahasa pengaturcaraan: 1. SQL menyokong penghakiman bersyarat, gelung dan operasi berubah -ubah; 2. Melalui prosedur, pencetus dan fungsi yang disimpan, pengguna boleh melakukan operasi logik yang kompleks dalam pangkalan data.

MySQL adalah sistem pengurusan pangkalan data relasi sumber terbuka, terutamanya digunakan untuk menyimpan dan mengambil data dengan cepat dan boleh dipercayai. Prinsip kerjanya termasuk permintaan pelanggan, resolusi pertanyaan, pelaksanaan pertanyaan dan hasil pulangan. Contoh penggunaan termasuk membuat jadual, memasukkan dan menanyakan data, dan ciri -ciri canggih seperti Operasi Join. Kesalahan umum melibatkan sintaks SQL, jenis data, dan keizinan, dan cadangan pengoptimuman termasuk penggunaan indeks, pertanyaan yang dioptimumkan, dan pembahagian jadual.

MySQL adalah sistem pengurusan pangkalan data sumber terbuka yang sesuai untuk penyimpanan data, pengurusan, pertanyaan dan keselamatan. 1. Ia menyokong pelbagai sistem operasi dan digunakan secara meluas dalam aplikasi web dan bidang lain. 2. Melalui seni bina pelanggan-pelayan dan enjin penyimpanan yang berbeza, MySQL memproses data dengan cekap. 3. Penggunaan asas termasuk membuat pangkalan data dan jadual, memasukkan, menanyakan dan mengemas kini data. 4. Penggunaan lanjutan melibatkan pertanyaan kompleks dan prosedur yang disimpan. 5. Kesilapan umum boleh disahpepijat melalui pernyataan yang dijelaskan. 6. Pengoptimuman Prestasi termasuk penggunaan indeks rasional dan pernyataan pertanyaan yang dioptimumkan.

MySQL dipilih untuk prestasi, kebolehpercayaan, kemudahan penggunaan, dan sokongan komuniti. 1.MYSQL Menyediakan fungsi penyimpanan dan pengambilan data yang cekap, menyokong pelbagai jenis data dan operasi pertanyaan lanjutan. 2. Mengamalkan seni bina pelanggan-pelayan dan enjin penyimpanan berganda untuk menyokong urus niaga dan pengoptimuman pertanyaan. 3. Mudah digunakan, menyokong pelbagai sistem operasi dan bahasa pengaturcaraan. 4. Mempunyai sokongan komuniti yang kuat dan menyediakan sumber dan penyelesaian yang kaya.

Mekanisme kunci InnoDB termasuk kunci bersama, kunci eksklusif, kunci niat, kunci rekod, kunci jurang dan kunci utama seterusnya. 1. Kunci dikongsi membolehkan urus niaga membaca data tanpa menghalang urus niaga lain dari membaca. 2. Kunci eksklusif menghalang urus niaga lain daripada membaca dan mengubah suai data. 3. Niat Kunci mengoptimumkan kecekapan kunci. 4. Rekod Rekod Kunci Kunci Rekod. 5. Gap Lock Locks Index Rakaman Gap. 6. Kunci kunci seterusnya adalah gabungan kunci rekod dan kunci jurang untuk memastikan konsistensi data.


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

MantisBT
Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

MinGW - GNU Minimalis untuk Windows
Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.

PhpStorm versi Mac
Alat pembangunan bersepadu PHP profesional terkini (2018.2.1).

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan